Java字符串限制

Java字符串限制,java,string,netbeans,limit,Java,String,Netbeans,Limit,我是java新手(以前只使用sql),我正在尝试为我的字符串变量设置长度限制。基本上,我有一个用户名字段,只能是6个字符长 我正在尝试以下方法: private String username (6); 我假设这不是正确的格式。有人知道我如何用java正确地做到这一点吗 你的建议不是做你想做的事的正确方法。尝试使用: private int stringLimit = 6; // Take input from user private String username = inputStrin

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

我正在尝试以下方法:

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"

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

String output ="";
public boolean set(String str, int limit){
      if(str.length() <= limit){
            output= str;
            return true;
      }
      else
        return false;
 }
字符串输出=”;
公共布尔集合(字符串str,int限制){

if(str.length()在本例中,
注释
机制很有用,当然,如果您知道这是什么

您可以创建自己的注释,例如:

@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的更多信息,请参见示例。是参考实现()


简而言之,当将对象注释为@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
                ...........
            }    
SubString()不适用于此。如果输入字符串的长度小于limitStringIndexOutOfBoundsException,将引发异常。 我认为您可以使用StringBuilder来实现此目的

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

如果字符串短于stringLimit,则会发生爆炸。我假设
getString
是一个变量名。让我告诉您,这是一个非常糟糕的变量名,因为它们的名称不应该以动词开头,这听起来像是一个方法,可能会让人困惑。请不要只是发布代码,尝试解释您提供的解决方案伊丁,记住你是来帮助别人的:)