投稿する前に文字列分割( "\ u")または\ uまたは\ uを使用してみました。ユニコード文字と見なされますが、この場合はそうではありません。次の文字列 "abc u12345"を含む文字列をで分割します。
答えて
すでに述べたように、\ u12345はユニコード文字なので、単一のシンボルとして扱われます。 文字列にこれらの文字列がある場合は、すでに遅すぎます。これをファイルまたはネットワーク経由で取得した場合は、入力した文字列を読み込み、文字列変数に格納して作業する前に、それぞれの\または\ uをエスケープすることができます。
タスクのコンテキストをもう少し詳しく説明すると、おそらく他の解決策が見つかるかもしれません。
これを試してください。あなたはJavaはそうUnicode文字としてそれを理解し、適切に
split("\\\\u")
または
split(Pattern.quote("\\u"))
をエスケープしていなかった、行うには正しい事はそれを正しく読んでいない場合は、JavaにUnicodeを渡す避けるために、ソースを更新することになります必要です。
文字列全体を文字配列に変換し、文字が128より大きいかどうかを確認し、そうであれば残りの配列を別々のStringBuilderに追加することができます。それは以下の助けを参照してください:
public static void tryMee(String input)
{
StringBuilder b1 = new StringBuilder();
StringBuilder b2 = new StringBuilder();
boolean isUni = false;
for (char c : input.toCharArray())
{
if (c >= 128)
{
b2.append("\\u").append(String.format("%04X", (int) c));
isUni = true;
}
else if(isUni) b2.append(c);
else b1.append(c);
}
System.out.println("B1: "+b1);
System.out.println("B2: "+b2);
}
作品 – Shashidhar
喜んで助けました。可能であれば、これを回答として受け入れてください。 – PankajT
import java.util.Arrays;
public class Example {
public static void main (String[]args){
String str = "abc\u12345";
// first replace \\u with something else, for example with -u
char [] chars = str.toCharArray();
StringBuilder sb = new StringBuilder();
for(char c: chars){
if(c >= 128){
sb.append("-u").append(Integer.toHexString(c | 0x10000).substring(1));
}else{
sb.append(c);
}
}
String replaced = sb.toString();
// now you can split by -u
String [] splited = sb.toString().split("-u");
System.out.println(replaced);
System.out.println(Arrays.toString(splited));
}
}
- 1. VBScriptで特殊文字を含む文字列を分割します。
- 2. 複数の文字を含む文字列を分割する
- 3. 空白文字ブロックを含む文字列を分割する
- 4. Javascriptで文字列を含む部分文字列を文字列に分割する方法は?
- 5. 文字列を含む配列 - 文字列を分割する方法
- 6. リストを含む文字列を分割する方法(文字列として)
- 7. 文字を含む文字列を含む文字列
- 8. NSXMLParserは、外部(ユニコード)文字を含む文字列を分割します。
- 9. 両方を含む文字列の数字と文字を分割する
- 10. 特殊文字 '/'を含む文字列のJavascript部分文字
- 11. 文字列。不明な部分を含む文字列
- 12. 複数の特殊文字を含む文字列を分割する - Java
- 13. URL /リンクを含む文字列をJavaで分割する
- 14. 文字列を文字列に分割しますか?
- 15. gsub文字列から可変文字を含む部分文字列
- 16. 文章に年次報告書を含む分割文字ベクトル
- 17. JavaScriptは、文字列に新しい改行を含む文字列を分割します。
- 18. Pythonでユニコードとバックスラッシュを含む分割文字列
- 19. オプションの文字を含むSQL Serverの部分文字列
- 20. 文字列をiOSの部分文字列に分割する
- 21. 文字列を分割し、部分文字列をmathmlタグで囲みます。
- 22. 文字列配列の文字列を分割して区切り文字を分割する
- 23. 無視された文字を含むいくつかの文字で文字列を分割する
- 24. 複数の文字を含む区切り文字で文字列で分割する
- 25. バックスラッシュを含むJavaScriptの文字列の分割
- 26. Pythonで区切り文字として不明なスペースを含む文字列を分割する
- 27. Delphi複数のレコードを含む文字列をさまざまな区切り文字で分割します
- 28. 分割文字列
- 29. 分割文字列
- 30. 分割文字列
しかし、 ' '\''と ' 'u'' **があり、ここではない、単一の文字**。 '\ u12345'は** single charactedr **です。それは "エスケープ"するために使用されます。 –
Unicode文字です。 JavaはそれをUnicode文字として使用します – Jens
文字列リテラル '' abc \ u12345 ''は' 'abcሴ5" 'のエスケープされたバージョンです。つまり、' 'a' '(U + 0061)'' b'' (U + 0063) ''ሴ''(U + 0062) '' c ''(U + 1234)' '5'(U + 0035)です。 'split(" \\ u ")'や 'split("ሴ ")'という文字列には実際には存在しないので、文字列に '' \ '(U + 005C) '' U'(U + 0075)の代わりに ''\''の文字が含まれていれば 'split(" \\ u ")'が働くでしょう –