2016-11-28 27 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是不可能写一个字符串“_/\ _”检查我的答案逃脱字符的完整列表。这个字符串应该写成“_/\\ _” –