如何在一行中准确输入一个五个字符的字符串,然后在每个字符之间加空格?JAVA

如何在一行中准确输入一个五个字符的字符串,然后在每个字符之间加空格?JAVA,java,string,input,printf,java.util.scanner,Java,String,Input,Printf,Java.util.scanner,我希望用户在一行中输入五个字母(例如单词“hello”),并且输出为“helo”。我可以使用字符串执行此操作。替换(如下所示)但我需要使用printf和%s来执行此操作 Scanner scanner = new Scanner(System.in); System.out.println("Enter five chatracters: "); String charoutput = scanner.next(); String charoutput2 = charoutput.replace

我希望用户在一行中输入五个字母(例如单词“hello”),并且输出为“helo”。我可以使用
字符串执行此操作。替换
(如下所示)但我需要使用
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
    }
或者,您可以使用Java8流在线执行此操作

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

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

String str = "hello";
    char[] ch =str.toCharArray();
    for (char c:ch) {
        System.out.printf("%2s", c);  // h e l l o
    }
或者,您可以使用Java8流在线执行此操作

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

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

使用
String.join

String input = "Hello";
String result = String.join(" ", input.split(""));
// result now holds "H e l l o"
将regex与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"


我的首选是
字符串.join
,因为它基本上是您想要做的事情的内置项。

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

使用
String.join

String input = "Hello";
String result = String.join(" ", input.split(""));
// result now holds "H e l l o"
将regex与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"


我的首选是
字符串.join
,因为它基本上是您想要做的事情的内置项。

以下是一种方法:

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打印结果

以下是一种方法:

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打印结果

循环使用
字符串
并打印
charAt(i)+=“
是的,Steve,这确实有效,但是我需要使用printf和%10s来表示十个空格,而不是可以执行
的强制间距。用空字符串替换(“.
):)循环使用
字符串
并打印
charAt(i)+”“
是的,Steve,这确实有效,但是我需要使用printf和%10s来表示十个空格,而不是您可以使用的强力间距。用空字符串替换(“.”。
。:)谢谢!这有助于洗液。请注意,这可以打印“h e l o”,在“h”之前也有一个前导空格。是的,它适用于字符串中的每个字符,如果强制要求在第一个字符之前不加空格,我们可以这样做。谢谢!这有助于一个洛蒂特注意,这可能会打印“h e l o”,在“h”之前也有一个前导空格。是的,它适用于字符串中的每个字符,如果强制要求在第一个字符之前不附加空格,我们可以这样做