我是新来的java(以前只与SQL一起工作),我试图为我的字符串变量设置长度限制。基本上我有一个只能有6个字符长的用户名字段。Java字符串限制
我尝试以下操作:
private String username (6);
我假定这是不正确的格式。有谁知道我可以用java正确做到这一点?
我是新来的java(以前只与SQL一起工作),我试图为我的字符串变量设置长度限制。基本上我有一个只能有6个字符长的用户名字段。Java字符串限制
我尝试以下操作:
private String username (6);
我假定这是不正确的格式。有谁知道我可以用java正确做到这一点?
你的建议是不正确的做你想做的事。尝试使用:
private int stringLimit = 6;
// Take input from user
private String username = inputString.substring(0,stringLimit);
例如:
inputString = "joelspolsky";
private String username = inputString.substring(0,stringLimit);
// username is "joelsp"
你可以尝试这样的soemthing:以来自用户的输入,然后通过下面的函数验证字符串。
String output ="";
public boolean set(String str, int limit){
if(str.length() <= limit){
output= str;
return true;
}
else
return false;
}
在这种情况下annotation
机制可能是有用的,如果当然,你知道这是什么。
您可以创建自己的注释,是这样的:
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface MaxLength {
int value();
}
而且使用它像:
@MaxLength(6)
private String username;
然后,你必须进行后处理的专用处理器后,这样的对象,你必须手动创建。
没有方法在Java限制字符串通过内置特性一定有限数。字符串是不可变的,并采用您在其构造函数中提供的值。您将需要手动编写代码来执行此操作。
使用length()
函数来确定字符串的长度,并且不允许长度大于6
if(username.length() > 6)
{
throw new RuntimeException("User name too long");
}
一个你必须是抛出一个异常,然后处理一下其他地方的选项越大。或者,您可以在遇到问题后立即向用户显示警报。
其他一些答案,声称“有没有办法在Java限制字符串,通过内置的功能一定有限数量的”,并建议那些滚动自己。但是,Java EE验证API仅用于此目的。举例:
import javax.validation.constraints.Size;
public class Person {
@Size(max = 6)
private String username;
}
有关如何使用验证API的更多信息,请参阅this thread。 Hibernate validator是参考实现(usage)。
总之,注释对象作为@Valid时,在注释进行验证将被强制执行。
例如切割URL
if (getURLitem.length() >= 15) {
int stringLimit = 15;
final String smallURL = getURLitem.substring(0, stringLimit);
//show short string in textview...
TextView urlLink = (TextView) findViewById(R.id.url_link);
urlLink.setText(smallURL);
// Set On click listener and open URL below
...........
} else {
//show full string in textview...
TextView urlLink = (TextView) findViewById(R.id.url_link);
urlLink.setText(getURLitem);
// Set On click listener and open URL below
...........
}
我假设'getString'是一个变量名。让我告诉你,这是一个非常糟糕的变量名称,因为它们的名字不应该以动词开头,它听起来像是一种方法,可能会让人困惑。请不要只发布代码,试着解释你提供的解决方案是什么,请记住你在这里帮助其他人:) –
请检查我已经更新上面,我的错误之前.. – ivan
的长度这将炸毁如果字符串小于stringLimit短。 – user1944491