行に削除する必要のある文字列が含まれているかどうかを確認し、どの記号を削除するかを示す必要があります。
同じ記号の連続する文字が3つ以上ある場合は、文字シーケンスはアンダースコア( " ")に置き換えられ、シーケンスの長さに応じて置き換えられます。たとえば、「、_、@、@、@、@、$、$ 、、#、#、!」という行 「 、_、_、_、_、_、_、$、$、_、#、#、!」に変換されます 除去のプロセスの後。
これは、StringまたはStringBuilder、Regexなどでのみ行う必要があります...(Javaの基本的なコーディングのみ)。
配列も使用できません。前もって感謝します。
これは私が試したものです:
public static void main(String[] args) {
String linha = "##,$$$$,%%%%,@%@@@,!!!!", validos = "$#%!@";
for (int i = 0; i < validos.length(); i++) {
linha = linha.replaceAll("\\" + validos.charAt(i) + "{3,}", "_");
}
System.out.println (linha);
}
}
ここでの問題は、シーケンスを1つの「_」だけに置き換えることです。どの文字が置き換えられるかわかりません。