2013-03-27 6 views
0

Я занимаюсь переобучением Java за последние несколько дней и до сих пор не имел проблем. Я пытаюсь написать кусок кода примера, который печатает предложение, затем индексирует все символы в программе и, наконец, отображает их все в последовательном порядке. Но его говорил мне, что «я» не инициализируется здесь код, который я получил:Часть кода не инициализирована

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); 
+1

Невозможно увидеть 'i', определенные в этой области ... –

+0

Вы не указали, где вы даже объявили' i', что очень сложно вам помочь. –

ответ

1

Инициализировать идентификатор «я» до или после Струнный предложения, как:

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); 
1

Но его говорил мне, что «я» не инициализируется здесь код, который я получил:

Я предполагаю, что 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); 
    } 
+0

Спасибо за добавление этого, однако я нашел другое решение проблемы самостоятельно - извините! – CodeMonkeyAlx

1

Понял я должен был фактически инициализировать «я», как так:

 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); 
1

Если вы создаете переменные внутри методов, которые имеют для присвоения им значения:

int i = 0; 

переменные члены инициализируются автоматически (0/null)

0

Вы должны убедиться, что i объявляется и инициализируется, а также сделать конечно, если у вас есть переменная с именем i, ее область видима вашему коду.

Смежные вопросы