netbeans Java字符串限制

kt06eoxx  于 2022-11-10  发布在  Java
关注(0)|答案(7)|浏览(165)

我是java新手(以前只使用sql),我试图为我的字符串变量设置一个长度限制。基本上我有一个用户名字段,只能是6个字符长。
我正在尝试以下操作:

private String username (6);

我假设这不是正确的格式。有人知道我如何在java中正确地做这件事吗?

xiozqbni

xiozqbni1#

一些其他的回答声称“没有办法通过内置特性将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时,将强制执行注解中完成的验证。

q35jwt9p

q35jwt9p2#

在java中,没有办法通过内置特性将字符串限制在某个有限的数目。字符串是不可变的,并且接受你在其构造函数中提供的值。你需要手动编写代码来完成这一点。
使用length()函数确定字符串的长度,并且不允许长度大于6。

if( username.length() > 6 )
{
    throw new RuntimeException("User name too long");
}

其中一个选项是掷回例外状况,然后在其他地方行程它。或者,您可以在遇到问题后立即向使用者显示警示。

euoag5mw

euoag5mw3#

您建议的方法不正确。请尝试使用:

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"
rjjhvcjd

rjjhvcjd4#

您可以尝试这样的方法:从用户那里获取输入,然后使用以下函数验证该字符串。

String output ="";
public boolean set(String str, int limit){
      if(str.length() <= limit){
            output= str;
            return true;
      }
      else
        return false;
 }
gt0wga4j

gt0wga4j5#

SubString()不适用于此。如果输入字符串的长度小于限制StringIndexOutOfBoundsException将抛出。我认为您可以使用StringBuilder来实现此目的。

StringBuilder buider = new StringBuilder(username);
builder.setLength(6);
String restName = builder.toString().trim();
qacovj5a

qacovj5a6#

在这种情况下,annotation机制可能会很有用,当然,如果你知道这是什么的话。
您可以建立自己的注解,例如:

@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface MaxLength {
    int value();
}

并像这样使用它:

@MaxLength(6)
private String username;

然后,您必须在特殊的后处理器中对此类对象进行后处理,您必须手动创建该后处理器。

kiz8lqtg

kiz8lqtg7#

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
                ...........
            }

相关问题