に戻す句読点を追加します。次に、分割した後、受け取った配列の各要素(スイッチ文字)を処理します。ジャワ、句読点記号、プロセス文字列によって分割文字列は、私はこのような文字列を持っている文字列
そして、すべての句読記号をその場所に戻したいと思います。結果は次のようになります。
Smoe txet, wtih pinctuatuon sgin!
これを行うにはどのような方法が最適ですか?
に戻す句読点を追加します。次に、分割した後、受け取った配列の各要素(スイッチ文字)を処理します。ジャワ、句読点記号、プロセス文字列によって分割文字列は、私はこのような文字列を持っている文字列
そして、すべての句読記号をその場所に戻したいと思います。結果は次のようになります。
Smoe txet, wtih pinctuatuon sgin!
これを行うにはどのような方法が最適ですか?
文字列ごとに文字列を読み取っていました。あなたは句読点文字に到達するまで
文字が文字が句読点でない場合には句読点がStringBuilderの
に追加している場合は、その単語を処理し、StringBuilderのにそれを追加し、その後、読んで文字を保持します。 次の句読点にスキップします。
このプリントではなく、StringBuilderのに追加しますが、あなたのアイデアを得る:あなたは文字を追加または削除されていないので
String sentence = "This is a test, message!";
for (int i = 0; i<sentence.length(); i++) {
if (Character.isLetter(sentence.charAt(i))) {
String tmp = "" +sentence.charAt(i);
while (Character.isLetter(sentence.charAt(i+1)) && i<sentence.length()) {
i++;
tmp += sentence.charAt(i);
}
System.out.print(switchChars(tmp));
} else {
System.out.print(sentence.charAt(i));
}
}
System.out.println();
ありがとうございます。私はこのアプローチを試みます。 –
最後の文字の反復の後、私たちはインデックスを受け取っていました... 'while(Character.isLetter(sentence.charAt(i + 1))&& i
を、あなたにもちょうどString.toCharArray()
を使用することがあります。
char[] cs = str.toCharArray();
for (int i = 0; i < cs.length;) {
while (i < cs.length() && !Character.isLetter(cs[i])) ++i;
int start = i;
while (i < cs.length() && Character.isLetter(cs[i])) ++i;
process(cs, start, i);
}
String result = new String(cs);
process(char[], int startInclusive, int endExclusive)
は、インデックス間の配列内の文字を混乱させる方法です。
あなたは使用することができます。
String[] parts = str.split(",");
// processing parts
String str2 = String.join(",", parts);
どのように小さなラインで全体のことをやってはどうですか?
str = str.replaceAll("(?<=\\b\\w)(.)(.)", "$2$1");
いくつかのテストコード:
String str = "Some text, with punctuation sign!";
System.out.println(str.replaceAll("(?<=\\b\\w)(.)(.)", "$2$1"));
出力:あなたはこの `str.split( "正規表現")を行うと
Smoe txet, wtih pnuctuation sgin!
'あなたが1つの区切り記号によって分割または多くの可能性がありますか? – ACV
あなたは1つのシンボルで分割しています。たとえば、 'str.split("、 ")'とすると、取得している配列には単語しか含まれていないことがわかります。しかし、私はそれが事実ではないと確信しています。:) はい、@リッチですが、スプリットのアプローチはここでは機能しません。それを1文字ずつトラバースしなければならないでしょう... – ACV
@ACV。それは多くの場合があります(例:「。、:;!?」 –