私は Java を初めて使用し (以前は sql でのみ作業していました)、文字列変数の長さ制限を設定しようとしています。基本的に、6 文字までのユーザー名フィールドがあります。
私は次のことを試みています:
private String username (6);
これは正しい形式ではないと思います。Javaでこれを正しく行う方法を知っている人はいますか?
他のいくつかの回答では、「組み込み機能を使用して Java の文字列を特定の有限数に制限する方法はありません」と主張し、独自のローリングを提案しています。ただし、Java EE 検証 API はこれだけを目的としています。例:
import javax.validation.constraints.Size;
public class Person {
@Size(max = 6)
private String username;
}
Validation API の使用方法の詳細については、たとえば、このスレッドを参照してください。Hibernate バリデーターは参照実装 (使用法) です。
つまり、オブジェクトに @Valid のアノテーションを付けると、アノテーションで行われた検証が適用されます。
あなたが提案したことは、あなたが望むことをする正しい方法ではありません。使用してみてください:
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"
組み込みの機能を使用して、Java の文字列を特定の有限数に制限する方法はありません。文字列は不変であり、コンストラクターで指定した値を取ります。これを行うには、手動でコードを記述する必要があります。
関数を使用しlength()
て文字列の長さを決定し、6 を超える長さは許可されません。
if( username.length() > 6 )
{
throw new RuntimeException("User name too long");
}
オプションの 1 つは、例外をスローしてから別の場所で処理することです。または、問題が発生した直後にユーザーに警告を表示できます。
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
...........
}