1

各文字の文字列をチェックしたいので、他の文字に置き換えるか、文字列に保持します。また、長い文字列であるため、このタスクを実行する時間が非常に重要です。これらの最善の方法、またはより良いアイデアは何ですか? それらすべてについて、結果を StringBuilder に追加します。for および charAt コマンドですべての文字をチェックします。前の方法のように switch を使用します。replaceAll を 2 回使用します。

最初のメソッドのいずれかが優れている場合、次のような文字のグループで文字をチェックする方法はありますか? if (st.charAt(i)=='a'..'z') ....

編集:時間のかかる方法と理由を教えてください.私はあなたが言ったこれらの方法をすべて知っています!

4

5 に答える 5

1

単一の文字 (または単一のシーケンス) を置き換えたい場合はreplace()、他の回答が示唆しているように、を使用します。

複数の文字 (例: 、'a''b'および'c') を単一の置換文字または文字シーケンス (例: "X") に置き換えたい場合は、正規表現 replace を使用する必要があります。

String result = original.replaceAll("[abc]", "X");

'a'複数の文字をそれぞれ異なる置換 (たとえばwith 'A''b'with ) で置き換えたい場合は、'B'自分で文字列をループし、結果を a に構築するのStringBuilderがおそらく最も効率的です。これは、質問で指摘したように、文字列を一度だけ通過するためです。

String sb = new StringBuilder();
String targets = "abc";
String replacements = "ABC";
for (int i = 0; i < result.length; ++i) {
    char c = original.charAt(i);
    int loc = targets.indexOf(c);
    sb.append(loc >= 0 ? replacements.charAt(loc) : c);
}
String result = sb.toString();
于 2013-04-25T21:46:04.543 に答える
1

ドキュメントを確認して、いくつかの適切な方法を見つけてください。

char from = 'a';
char to = 'b';
str = str.replace(from, to);
于 2013-04-25T21:18:11.863 に答える
1
String replaceSample = "This String replace Example shows 
how to replace one char from String";
String newString = replaceSample.replace('r', 't');

出力: この Stting teplace の例は、Sting から 1 つのチャットを置き換える方法を示しています。

また、contains を使用することもできます:

 str1.toLowerCase().contains(str2.toLowerCase())

部分文字列 str2 が str1 に存在するかどうかを確認するには

編集。

String がファイルから取得されていることを読んでください。これには正規表現を使用できます。それが最善の方法でしょう。

http://docs.oracle.com/javase/tutorial/essential/regex/literals.html

于 2013-04-25T21:18:39.740 に答える