如何在一行中输入五个字符串,然后在每个字符之间放置带空格的字符串? 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!)
我的偏好是String.join
,因为它基本上是你想要做的内置。
以上是关于如何在一行中输入五个字符串,然后在每个字符之间放置带空格的字符串? Java的的主要内容,如果未能解决你的问题,请参考以下文章
C语言:输入一行字符,统计其中有多少个单词,单词之间用空格分隔开
c语言:输入一行字符,统计其中的单词个数,单词之间用空格分开
C语言输入一行字符 统计其中有多少个单词,单词之间用空格分隔开