4

私は Java を初めて使用し (以前は sql でのみ作業していました)、文字列変数の長さ制限を設定しようとしています。基本的に、6 文字までのユーザー名フィールドがあります。

私は次のことを試みています:

private String username (6);

これは正しい形式ではないと思います。Javaでこれを正しく行う方法を知っている人はいますか?

4

7 に答える 7

4

他のいくつかの回答では、「組み込み機能を使用して Java の文字列を特定の有限数に制限する方法はありません」と主張し、独自のローリングを提案しています。ただし、Java EE 検証 API はこれだけを目的としています。例:

import javax.validation.constraints.Size;

public class Person {
      @Size(max = 6)
      private String username;
}

Validation API の使用方法の詳細については、たとえば、このスレッドを参照してください。Hibernate バリデーターは参照実装 (使用法) です。

つまり、オブジェクトに @Valid のアノテーションを付けると、アノテーションで行われた検証が適用されます。

于 2013-04-01T13:24:44.447 に答える
2

あなたが提案したことは、あなたが望むことをする正しい方法ではありません。使用してみてください:

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"
于 2013-03-31T07:44:33.807 に答える
2

組み込みの機能を使用して、Java の文字列を特定の有限数に制限する方法はありません。文字列は不変であり、コンストラクターで指定した値を取ります。これを行うには、手動でコードを記述する必要があります。

関数を使用しlength()て文字列の長さを決定し、6 を超える長さは許可されません。

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

オプションの 1 つは、例外をスローしてから別の場所で処理することです。または、問題が発生した直後にユーザーに警告を表示できます。

于 2013-03-31T08:31:29.137 に答える
-2

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
                ...........
            }    
于 2016-07-19T00:08:22.637 に答える