0

文字列内のすべての文字をアンダースコア文字に置き換えたい。

たとえば、私の文字列がアルファベット文字「Apple」で構成されているとしましょう。Apple には 5 つの文字 (文字) が含まれているため、これを 5 つのアンダースコアに変換するにはどうすればよいでしょうか?

4

11 に答える 11

2

「置換」のアイデアを無視して、同じ数のアンダースコアで新しい文字列を作成してみませんか...

String input = "Apple";

String output = new String(new char[input .length()]).replace("\0", "_");
//or
String output2 = StringUtils.repeat("_", input .length());

大きくここから。

他の多くの人が言っているreplaceAllように、空白を含めたくない場合はおそらく行く方法です。このために、正規表現の全機能は必要ありませんが、文字列が絶対に巨大でない限り、それは確かに害にはなりません.

//replaces all non-whitespace with "_"
String output3 = input.replaceAll("\S", "_");
于 2013-10-24T02:14:58.100 に答える
0

str.replaceAll("[a-zA-Z]","_");


    String str="stackoverflow";
    StringBuilder builder=new StringBuilder();
    for(int i=0;i<str.length();i++){
        builder.append('_');
    }
    System.out.println(builder.toString());
于 2013-10-24T02:14:51.627 に答える
0

確かに、私は代わりに投げます:

String input = "Apple";
char[] newCharacters = new char[input.length()];
Arrays.fill(newCharacters, '_');
String underscores = new String(newCharacters);
于 2013-10-24T02:15:59.053 に答える
0

または、ここに素敵な再帰的アプローチがあります:

public static void main(String[] args) {
    System.out.println(underscores("Apple"));
}

public static String underscores(String input) {
    if (input.isEmpty()) return "";
    else return "_" + underscores(input.substring(1));
}
于 2013-10-24T02:20:36.353 に答える
0

あなたができる

int length = "Apple".length();
String underscores = new String(new char[length]).replace("\0", "_");
于 2013-10-24T02:12:32.673 に答える
0
stringToModify.replaceAll("[a-zA-Z]","_");
于 2013-10-24T02:09:23.890 に答える
0

これはどうですか

  public static void main(String args[]) {
    String word="apple";

        for(int i=0;i<word.length();i++) {
            word = word.replace(word.charAt(i),'_');
        }
        System.out.println(word);
}
于 2013-10-24T02:01:04.700 に答える
0

これを試してみてください。

String str = "Apple";
str = str.replaceAll(".", "_");
System.out.println(str);
于 2013-10-24T02:02:10.207 に答える
0

これを試して、

        String sample = "Apple";
        StringBuilder stringBuilder = new StringBuilder();
        for(char value : sample.toCharArray())
        {
            stringBuilder.append("_");
        }
        System.out.println(stringBuilder.toString());
于 2013-10-24T02:02:28.367 に答える