-1

「 ISTERCMiniBAT」という文字列があります

問題は、Word Miniで大文字と小文字が区別される文字(MiniまたはMINI)が含まれる可能性があることです。

要件は、文字列からMini / MINIという単語を削除する必要があり、「 ISTERC BAT 」のように表示される必要があることです(Miniの前に余分なスペースも削除されました)

私はこの方法を試しました

public class Test {

    public static void main(String args[]) {

        String Symbol = "ISTERC Mini BAT";

        if (Symbol.contains("Mini") || Symbol.contains("MINI")) {
            Symbol = Symbol.replace(" Mini", "");
        }

        System.out.println(Symbol);

    }

}

問題は、含まれている場合に処理する別のものを作成する必要があるif condition かどうかです( "MINI")

応答後にこの方法を試しました

public class Test {

    public static void main(String args[]) {

        String Symbol = "ISTERC Mini BAT";

        if (Symbol.contains("(?i)mini")) {

            Symbol = Symbol.replaceAll(" (?i)mini", "");
        }

        System.out.println(Symbol);

    }

}
4

4 に答える 4

2

String#replaceAll正規表現(?i)を使用して渡すと(?i)word、大文字と小文字が区別されなくなります

Symbol = Symbol.replaceAll("(?i)mini\\s+", "");
于 2013-03-01T05:53:48.943 に答える
1
public class Test {
    public static void main(String args[]) {
        String Symbol = "ISTERC MINI BAT";
        Symbol = Symbol.replaceAll("( mini| MINI)","");  
        System.out.println(Symbol);
    }
}
于 2013-03-01T05:57:32.433 に答える
1

試してみてください

Symbol = Symbol.replaceAll("(?i) Mini", "");

(?i)文字の大文字と小文字の区別を無視するように replaceAll メソッドを作成します。

MINI、MiNi、その他の可能性で機能するはずです。

EDIT#1: 正規表現を使用しないSystem.out.println(Symbol.contains("(?i) Mini", ""));ため、ブール値の応答になります。String 自体としてfalse扱います。(?i) Mini

于 2013-03-01T05:55:18.887 に答える
0

パターンを使用する:

Pattern pattern = Pattern.compile("mini", Pattern.CASE_INSENSITIVE);
System.out.println(pattern.matcher(symbol).replaceAll(""));
于 2013-03-01T05:55:27.237 に答える