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 回答