2016-11-28 60 views
0

我想切換大小寫字符\但它並不按我的意圖工作。 因爲字符在字符之後跳過字符,字符字面值會是什麼。所以我試圖做UTF。但它仍然不起作用。這裏是我的代碼:想要切換字符''

switch(input.charAt(i)){ 
    case '\u005C': 
     actVel ++; 
     break; 
    case '_': 
     if(actVel == 0) 
     { 
      actVel++; 
      plusCount++; 
     } 
     else 
     { 
      flat++; 
     } 
     break; 

我得到「未封閉字符文字」作爲錯誤代碼。 我會很感激的答案。謝謝:) - Cyaena

+1

'case'\\':'should have worked。 – Thilo

回答

0

\是一個特殊的轉義字符逃避反斜槓。

這裏逃脫characters名單:

  • \\\
  • \n新線
  • \t的標籤
  • \b退格鍵
  • \r爲carraige回報
  • \f對換
  • \'的字符'
  • \"的字符"

對於需要使用特殊的序列\\

舉個例子單\

System.out.println("Hello boys\\girls!"); // Prints: Hello boys\girls! 

來回你的代碼,你需要做到以下幾點:

case '\\': 
    ... 
    // Your code here 

從以艾米的答案的評論。

字符串_/\_應寫爲"_/\\_"。該字符串的長度爲4,計算公式如下:

_ 1 character 
/ 1 character 
\\ 1 character (printed as \) 
_ 1 character 
+0

好的,謝謝。但問題是我從.txt文件讀取輸入字符串。這個.txt被設置,我不能改變它。 – Cyaena

+0

在txt文件中,內容等於打印的內容。所以文本文件有內容_/_ _ –

3

嘗試通過努力\\

+0

這有效。但是這會產生一個新問題。我什至沒有想過。如果我想讀取像「\ __/\\ __」這樣的字符串,某些字符仍然會被跳過。我該如何改變它?我無法改變輸入。這是肯定的。即使在這裏,它逃脫了人物...... – Cyaena

+0

不知道我明白了這個問題嗎? –

+0

@Cyaena是不可能寫一個字符串「_/\ _」檢查我的答案逃脫字符的完整列表。這個字符串應該寫成「_/\\ _」 –