-1
if (!pos[1].equals("")) {
String name = pos[1];
System.out.println(name);
int p = 0;
for (int i = name.length() - 1; i>0; i--){
if (name.charAt(i)==' ') {
p = i;
break;
}
System.out.println(p);
rank[1] = Integer.parseInt(name.substring(p).trim());
}
}
在代碼中,INT p在如果塊設置爲我。但是,如果在if塊外部訪問它,則值仍然保留爲而不是在if條件中設置的值i。在if塊中設置變量的值。訪問值外,如果塊
如果'p'應該是一個存在於'if'塊之外的變量,那麼你不應該在'if'塊中聲明它。 – khelwood
我想說的最可能的情況是if語句塊沒有被輸入(或者當'i = 0'時它被觸發了,你需要給我們一個輸入示例,爲了將來的參考,範圍問題很難用這樣的格式化進行調試,因此不容易分辨出if區塊或for循環中的內容。編輯:它看起來好像突破了循環內的循環'if'塊,如果你只在'if'塊後面打印'p',在循環內,它將永遠不會打印改變。 –
你得到多行的值爲'0'的更長的名字嗎?爲_every_'i'打印'p',並調用'Integer.parseInt(...)'這可能會導致異常(假設_first_字符不是空格)。你可能想要做的是執行這兩個線以下,不在裏面。 – Thomas