如何在一行中准确输入一个五个字符的字符串,然后在每个字符之间加空格?JAVA
我希望用户在一行中输入五个字母(例如单词“hello”),并且输出为“helo”。我可以使用如何在一行中准确输入一个五个字符的字符串,然后在每个字符之间加空格?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
字符串执行此操作。替换(如下所示)但我需要使用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”之前也有一个前导空格。是的,它适用于字符串中的每个字符,如果强制要求在第一个字符之前不附加空格,我们可以这样做