如何在一行中输入五个字符串,然后在每个字符之间放置带空格的字符串? Java的

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在一行中输入五个字符串,然后在每个字符之间放置带空格的字符串? Java的相关的知识,希望对你有一定的参考价值。

我希望用户在一行中输入五个字母(例如单词“hello”)并输出为“h e l l o”。我可以用String.replace(如下所示)这样做,但我需要使用printf%s来做到这一点。

Scanner scanner = new Scanner(System.in);
System.out.println("Enter five chatracters: ");
String charoutput = scanner.next();
String charoutput2 = charoutput.replace("", "       ");

System.out.println("You have entered: " +charoutput2);
答案

您可以使用printf为字符串中的每个字符打印空间

String str = "hello";
    char[] ch =str.toCharArray();
    for (char c:ch) {
        System.out.printf("%2s", c);  // h e l l o
    }

或者你可以使用Java 8流来排队

Arrays.stream(str.split("")).forEach(i->System.out.printf("%2s",i)); //h e l l o
另一答案

以下是您可以执行此操作的方法之一:

Scanner scanner = new Scanner(System.in);
System.out.println("Enter five chatracters: ");
String charOutput = scanner.next();

String separatedChars = "";
for(char c: charOutput.toCharArray()) {
    separatedChars += c + " ";
} 

System.out.printf("You have entered: %s", separatedChars);

在这里,您遍历接收到的字符串的每个字符,并将其添加到separatedChars变量,后跟空格。然后,使用printf打印结果。

另一答案

有多种方法可以解决这个问题:

使用String.join

String input = "Hello";
String result = String.join(" ", input.split(""));
// result now holds "H e l l o"

使用带有replaceAll的正则表达式:

String input = "Hello";
String result = input.replaceAll(".","$0 ").trim();
// result now holds "H e l l o"

使用循环:

String input = "Hello";
int length = input.length;
for(int i=0; i<length; i++)
  System.out.printf("%c%s", input.charAt(i), i<length ? " " : "");
// outputs "H e l l o"

使用printf

String input = "Hello";
for(char c : input.toCharArray())
  System.out.printf("%2c", c);
// outputs " H e l l o" (NOTE the leading space!)

Try it online.

我的偏好是String.join,因为它基本上是你想要做的内置。

以上是关于如何在一行中输入五个字符串,然后在每个字符之间放置带空格的字符串? Java的的主要内容,如果未能解决你的问题,请参考以下文章

dlmwriter 在每个字符之间放置空格

C语言:输入一行字符,统计其中有多少个单词,单词之间用空格分隔开

c语言:输入一行字符,统计其中的单词个数,单词之间用空格分开

C语言输入一行字符 统计其中有多少个单词,单词之间用空格分隔开

C语言输入一行字符 统计其中有多少个单词,单词之间用空格分隔开

C语言:输入一行字符,统计其中有多少个单词,单词之间用空格分隔开