2016-05-16 5 views
3

私は特殊文字 "\"を分割したいと思います。 しかし、あなたが正規表現を逃れることもできますが、この問題はJavaで文字列をで分割する方法は?

a.split("\\\\"); 
+1

のようにそれを別の文字を使用します( "\\") 'String []型のスプリット= a.split;' – theTechnoKid

+0

はなぜだと思います2番目のオプションは機能しませんか?あなたは入力例を共有して、結果があなたが予想していたものとどのように異なるかを説明できますか? – Mureinik

+0

スレッド "main"の例外java.util.regex.PatternSyntaxException:インデックス1の近くの予期しない内部エラー \ –

答えて

2

を使用することによって解決される

a.split("\"); 

または

a.split("\\"); 
+0

これはまた、それを行う良い方法です。回答をありがとうございました –

+0

編集のための@ChitKhineありがとうございました - 私はさらにバッククォートを二重引用符に変更しました。 –

2

を使用して動作するようには思えませんString.splitとやや驚くべきこと

String str = "a\\b\\c"; 
str.split("\\\\"); 

Pattern.LITERALPatternをコンパイルしPattern.split(CharSequence)

[a, b, c] 
+0

良い仕事...正確なans .. –

0

単に必要がある文字列内のn \使用を出力する

String str = "a\\b\\c"; 
Pattern p = Pattern.compile("\\", Pattern.LITERAL); 
String[] arr = p.split(str); 
System.out.println(Arrays.toString(arr)); 

などを使用することも可能です。メソッドを分割する必要はありません。

  1. "\" javaの特殊文字。文字をスキップするのに使います。 String = "私は大学の"学生 "です!"; 「\」を使用しないと二重コートは許可されません。
  2. 文字列に "\"を使用することはできません。 文字列s = "私は大学の学生です!"; 聞いて "\"はErrを出します。
  3. "\"を使用して分割する必要はありません。必要な場所でのみ\ n "使用してください。

    またはそれが動作するはずです。この

    String s = "Thir is a Tiger.\'I like it very nuch!\'I it a pet!"; 
    String s2[] = s.split("\'"); 
    for (int i = 0; i < s2.length; i++) { 
        System.out.println(i+" value "+s2[i]); 
    } 
    
+0

私の目的は私のファイルディレクトリに使用することです。私がファイルディレクトリを取得すると、light \ hello \ text.txtという文字列が得られました。その場合、我々は文字列に\を持つことになります。 –

+0

それを使用します。=> String s = "light \\ hello \\ text.txt"; 文字列s2 [] = s.split( "\\\\");for(int i = 0; i

0
String s = "light\\hello\\text.txt"; 
    String s3[] = s.split(Pattern.quote("\\")); 
    for (int i = 0; i < s3.length; i++) { 
     System.out.println(i+" value "+s3[i]); 
} 
関連する問題