如何将字符串替换为一组一个字符

时间:2018-12-10 15:22:32

标签: java string for-loop extract string-length

如何将输入的字符串单词替换为一个字符集: 例如:

字符串是:Hello Word 输出应为:aaaaa aaaa

该空格应保留为空格。

我已经尝试过了,但是没有空间。

Scanner input = new Scanner(System.in);
String word =  input.nextLine();

for(int i = 0; i < word.length(); i++){                 
    System.out.print("a");
}

10 个答案:

答案 0 :(得分:7)

也许

System.out.println("Hello Word".replaceAll("\\S", "a"));

答案 1 :(得分:2)

您可以执行以下操作:

for(int i = 0; i < word.length(); i++){
   System.out.print(word.charAt(i) == ' ' ? ' ' : 'a');
}

或者如果循环后需要结果,则可以使用StringBuilder作为累加器,然后打印。

StringBuilder builder = new StringBuilder();
for(int i = 0; i < word.length(); i++){
    builder.append(word.charAt(i) == ' ' ? ' ' : 'a'); // accumulate to builder
}
System.out.println(builder);

或者您可以采用Java-8方式:

System.out.println(word.chars()
            .mapToObj(c -> ((char)c) == ' ' ? " " : "a")
            .collect(joining()));

答案 2 :(得分:2)

如果在word中的每个字符都是空格,请对其进行迭代,而不进行修改。否则,打印a。喜欢,

for (char ch : word.toCharArray()) {
    if (Character.isWhitespace(ch)) {
        System.out.print(ch);
    } else {
        System.out.print('a');
    }
}

答案 3 :(得分:1)

Scanner input = new Scanner(System.in);
String word =  input.nextLine();

for(int i = 0; i < word.length(); i++){ 
    if(word.charAt(i) == ' '){
        System.out.print(" ");
    }
    else{
        System.out.print("a");
    }
}

基本上,每当遇到空格时,您都希望跳过System.out.print(“ a”)。

答案 4 :(得分:0)

此方法会将空格以外的任何字符串替换为所需的任何所需字符。

    public static void main(String []args) {
        String t = "Hello Word";
        replace(t, 'a');
    }

    public static void replace(String word, char wanted) {
        for (int i = 0; i < word.length(); i++){
            System.out.print((word.charAt(i) == ' ' ? " " : wanted));
        }
    }

答案 5 :(得分:0)

或者,您可以像这样迭代word.toCharArray()

public static void main(String[] args) {
    String word = "Hello World!";
    String replacedWord = "";

    for (char c : word.toCharArray()) {
        if (c != ' ') {
            replacedWord += 'a';
        } else {
            replacedWord += c;
        }
    }

    System.out.println(word + " --> " + replacedWord);
}

答案 6 :(得分:0)

这时为什么不使用lambda添加解决方案

public String goofy(String str) {
    return Stream.of(str.split("")).map(ch -> {
            if (ch.equals(" "))
                return " ";
            else
                return "a";
}).collect(Collectors.joining(""));
}

最实用的解决方案是@Reimeus预期的解决方案。

答案 7 :(得分:0)

我们应该使用代码点而不是字符。

return Furniture::create([
    'id' => Furniture::generateUuid(true),
    'name' => $request['name'],
    'code' => $request['code'],
]);

答案 8 :(得分:0)

尝试以下代码:

Scanner input=new Scanner(System.in);
String word=input.nextLine();
String x[] =word.split(" ");
int count=x.length;

for(int i=0;i<count;i++){
    for(int j=0;j<=x[i].length();j++){
       if(j==x[i].length()){
           System.out.print(" ");
       }else{
           System.out.print("a");
       }
    }
}

答案 9 :(得分:0)

尝试一下:

line_count = 0
for line in lines:

    if line[:3] != "Max":
        tokens = line.split()
        episode = int(tokens[0].split(':')[1])
        if episode not in x:
            reward = float(tokens[7].split(':')[1])
            x.append(episode)
            y.append(reward)
            line_count += 1
    if line_count == 1000:
        linePlot = plt.plot(x, y)
        plt.show()
        linePlot[0].figure.savefig(fileName)
        line_count = 0
        x = []
        y = []