0

私はここ数日で Java を再学習する過程にあり、今のところ問題はありません。文を出力し、プログラム内のすべての文字にインデックスを付け、最後にそれらすべてを順番に表示するサンプルコードのチャンクを作成しようとしています。しかし、「i」がここで初期化されていないことを私に伝えているのは、私が得たコードです:

    String sentence = "This is a basic sentence sequence using letters and spaces in unicode!";
    int index = sentence.offsetByCodePoints(0, i);
    int cp = sentence.codePointAt(i);
    System.out.println(index);
    if (Character.isSupplementaryCodePoint(cp)) i += 2;
    else i++;
    System.out.println(i);
4

5 に答える 5

1

しかし、「i」がここで初期化されていないことを私に伝えているのは、私が得たコードです:

iここではローカル変数であると想定しています。Java ローカル変数では、デフォルト値が取得されません。使用する前に初期化する必要があります。

public void localVarTest() {
int i;
System.out.println(i);//error cuz you have not initialized local var i
}

次のようなデフォルト値で初期化します。

 public void localVarTest() {
    int i=0;
    System.out.println(i);
  }
于 2013-03-27T21:04:24.840 に答える
1

実際に「i」を次のように初期化する必要がありました。

        String sentence = "This is a basic sentence sequence using letters and spaces in unicode!";
    int i = 0; // Added this part to the code!
    int index = sentence.offsetByCodePoints(0, i);
    int cp = sentence.codePointAt(i);
    System.out.println(index);
    if (Character.isSupplementaryCodePoint(cp)) i += 2;
    else i++;
    System.out.println(i);
于 2013-03-27T21:04:38.630 に答える
1

メソッド内に変数を作成する場合は、それらに値を割り当てる必要があります。

int i = 0;

メンバー変数は ( 0/ null)で自動的に初期化されます

于 2013-03-27T21:05:04.043 に答える
1

次のように、文字列文の後または前に識別子「i」を初期化します。

String sentence = "This is a basic sentence sequence using letters and spaces in unicode!";
int i = 0;
int index = sentence.offsetByCodePoints(0, i);
int cp = sentence.codePointAt(i);
System.out.println(index);
if (Character.isSupplementaryCodePoint(cp)) i += 2;
else i++;
System.out.println(i);
于 2013-03-27T21:05:12.730 に答える
0

iが宣言され初期化されていることを確認する必要があります。また、スコープという名前の変数がある場合は、そのiスコープがコードに表示されることを確認してください。

于 2013-03-27T21:05:36.107 に答える