-1
我在Java中編寫了一個括號檢查器,並且在文本中搜索單引號時遇到問題。 如果我有一個像例如下面(!在這種情況下,這是我很感興趣的文本而不是代碼):在調試器中我看到引用字符串中的符號(java)
else if (line.charAt(i)=='\''||line.charAt(i)=='\"'){
,經過第一個等號我得到了我的字符串下列字符:
0 = '
1 = \\\
2 = '
3 = '
我怎樣才能結合1和2 - 這樣他就不會讀第二個'as'了?我認爲它是用反斜槓完成的 - 但顯然我做錯了什麼。
如果代碼的任何幫助,這就是我如何對待單引號和雙引號:
Stack <Character> theStack = new Stack<Character>();
// loop through file line per line
String line;
else if (line.charAt(i)=='\'' ||line.charAt(i)=='\"'){
// check whether there is already one of them on top
if (line.charAt(i)== '\'' && theStack.peek()=='\''){
theStack.pop();
}
else if (line.charAt(i)== '\"' && theStack.peek()=='\"'){
theStack.pop();
}
// else push new one on top
else {
theStack.push(line.charAt(i));
}
}
它失敗,因爲它上面顯示的行讀取三個單/雙引號。它應該只讀取其中的兩個。我不明白我如何才能避免Scanner在上面顯示的語句中以單引號的形式閱讀第二個單/雙引號。我認爲這是用反斜槓完成的。
我們應該如何知道自己在做錯了什麼而沒有看到自己的代碼? – jlordo