2016-08-07 11 views
3

ユーザ入力値など\n\t、もちろん\rエスケープ文字のユーザー入力を解釈するにはどうすればよいですか?

Javaはバックスラッシュで上記文字をエスケープ。だから、アプリケーションがバッファ

\\n\\t\\r

に以下の文字列を持っている今、どのように私は私がswitch文を書くことができ

\r\t、バック\nにこれらの文字列を変換します。しかし、オプションは無制限です

ユーザがユニコード文字\u1010を入力するとどうなりますか?

これは、エスケープ文字のユーザー入力を解釈する方法userInput.replaceAll("\\\\", "\\")

を動作しませんか?

答えて

3

あなたはStringEscapeUtils

unescapeJavaのunescapeJava方法を使用することができます

パブリック静的な文字列unescapeJava(String str)文字
アンエスケープ文字列で見つかった任意のJavaリテラル。たとえば、 '\'と 'n'の並びが改行文字になります。ただし、 '\'の前に別の '\'が付いていなければなりません。

パラメータ: - :あなたはドン場合」、しかし新しいエスケープ文字列、nullの場合はnull文字列の入力


strのアンエスケープする文字列、
戻り値nullの場合もありますこれらのエスケープ文字を実際の意味に変換したくない場合(新しい行に\nなど)、文字をエスケープする必要はありません。 Javaはそれらの文字をエスケープして変数に格納します。それをユーザーに出力する場合は、javaが自動的にエスケープします。

は、上記の例で

import java.util.Scanner; 

public class Adding { 
    public static void main(String[] args) { 
     Scanner sc=new Scanner(System.in); 

     System.out.print("Please enter something : "); 
     String userInput = sc.nextLine(); 

     System.out.println("You Entered : " + userInput); 

    } 
} 

コンソール

Please enter something : hello\nworld 
You Entered : hello\nworld 

このコードを考え、hello\nworld変数userInputhello\\nworldとして貯蔵しました。

+0

このような詳細な説明をいただきありがとうございます – john

関連する問題