"1+2+3*4"
文字列のようなものを取り、すべての文字の間にスペースを追加し、スペースが多すぎる場合は削除するメソッドを作成する必要があります。渡された文字列にはスペースが含まれる場合と含まれない場合があります。各文字の間にスペースが 1 つだけあることを確認する必要があります。
誰かがこれを達成するための最も簡単で複雑でない方法を提供してくれれば、とても感謝しています.
このソリューションは、各演算子の周りの空白を正規化します。
return expr.replaceAll("(?<=\\d)\\s*([-+/*])\\s*(?=\\d)", " $1 ");
通常、わかりやすいコードの方が優れています。
トリッキーな正規表現を使用しない、より理解しやすいブルート フォース アプローチは、おそらくより遅く、String.replace を使用します。
String.replace(" ", "");
String.replace("+", " + ");
例: 完全なコード (警告 - テストされていません!)
static final String[] ALL_MY_OPS = { "+", "-", "*", "//"};
public static String cleanup(String in) {
String result = in.replace(" ", ""); // remove all spaces
for (String op : ALL_MY_OPS) {
String replacement = " " + op + " ";
result = result.replace(op, replacement);
}
return result;
}