1

この記号を印刷したいのです/\が、コンパイラでは、すべて問題ないと思いますが、コンパイルできません。エラーが次のように表示されました

leets.java:13: error: unclosed string literal
System.out.printf ("%s /\",ch);
                     ^
 leets.java:13: error: ';' expected
 System.out.printf ("%s /\",ch);
                     ^
 2 errors

私のコードは以下です。

import java.util.Scanner;
public class switchDemo2
{
    public static void main ( String args[] )
    {
    Scanner i = new Scanner ( System.in );
    System.out.print ( "Enter a character to test: " );
    char ch;
    ch = i.next().charAt(0);
    switch ( ch )
    {
    case 'A': case 'a':
    System.out.printf ("%s /\",ch);
                       break;
    case 'B': case 'b':
        System.out.printf ("%s 13",ch);
    break;
    case 'C': case 'c':
    System.out.printf ("%s )",ch);
    break;
    case 'D': case 'd':
    System.out.printf ("%s 1)",ch);
    break;
    case 'E': case 'e':
    System.out.printf ("%s 3",ch);
    break;
    case 'F': case 'f':
    System.out.printf ("%s 1=",ch);
    break;
    default:
    System.out.printf ("%s not a lowercase vowel\n",ch);
}
}
4

4 に答える 4

4

のようにバックスラッシュをエスケープする必要があります。

 System.out.printf ("%c /\\",ch);

詳細については、こちらを参照してください

いくつかのコメント :

  1. 文字に使用"%s"した、文字に使用できます"%c。フォーマットのチュートリアルを参照してください。
  2. スキャナを閉じていないため、警告が表示されます。Scanner.close()メソッドを使用して閉じる必要があります。
  3. 最後の中括弧}が残っています。
于 2012-10-05T06:02:37.383 に答える
1
System.out.printf ("%s /\\",ch);

それ以外のSystem.out.printf ("%s /\",ch);

 Escape Sequence    Description
 \t     Insert a tab in the text at this point.
 \b     Insert a backspace in the text at this point.
 \n     Insert a newline in the text at this point.
 \r     Insert a carriage return in the text at this point.
 \f     Insert a formfeed in the text at this point.
 \'     Insert a single quote character in the text at this point.
 \"     Insert a double quote character in the text at this point.
 \\     Insert a backslash character in the text at this point

Javaの文字に関するチュートリアルは次のとおりです

于 2012-10-05T06:03:07.377 に答える
0

これでうまくいくはずです。

System.out.printf ("%s '/\\'",ch);

よろしく、

ディヌカ

于 2012-10-05T06:07:31.263 に答える
0

バックスラッシュはエスケープする必要があります: -

System.out.printf ("%c /\\",ch);

また、 your: -switch ( ch )をに変更して、とswitch(Character.toLowerCase(ch))の両方のケースを避けることができます。使うだけAacase 'a':

于 2012-10-05T06:03:35.030 に答える