输出始终是String,例如H,E,L,L,O,
。我怎么能限制逗号?我只想在字母之间使用逗号,例如H,E,L,L,O
。
import java.util.Scanner;
import java.lang.String;
public class forLoop
{
public static void main(String[] args)
{
Scanner Scan = new Scanner(System.in);
System.out.print("Enter a string: ");
String Str1 = Scan.next();
String newString="";
String Str2 ="";
for (int i=0; i < Str1.length(); i++)
{
newString = Str1.charAt(i) + ",";
Str2 = Str2 + newString;
}
System.out.print(Str2);
}
}
答案 0 :(得分:2)
由于这是作业,我会帮助你一点点而不给出答案:
如果你想让输出只在字母IE:A,B,C而不是A,B,C之间,这就是我想象你要问的。然后你需要查看你的for循环并检查边界条件。
答案 1 :(得分:0)
当要追加循环的 last 项时,不要附加逗号。您有i
的项目索引和Str2.length()
的字符串长度。只需在if
语句中使用小于或大于运算符的小学数学。
答案 2 :(得分:0)
尝试正则表达式:
String input = scanner.next();
String output = input.replaceAll(".", "$0,");
使用空格会更容易,因为你不需要放弃最后的'奇怪'逗号:
output = output.substring (0, ouput.length() - 2);
答案 3 :(得分:0)
当您找到循环解决方案时,您可以尝试以下方法;)
System.out.println(Arrays.toString("HELLO".toCharArray()).replaceAll("[\\[ \\]]", ""));
答案 4 :(得分:0)
以下代码段应具有指导意义。它显示:
StringBuilder
构建字符串char
中的每个String
String s = "HELLO";
StringBuilder sb = new StringBuilder();
for (int i = 0; i < s.length(); i++) {
char ch = s.charAt(i);
if (i == 0) { // first
sb.append("(" + ch + ")");
} else if (i == s.length() - 1) { // last
sb.append("<" + ch + ">");
} else { // everything in between
sb.append(Character.toLowerCase(ch));
}
}
System.out.println(sb.toString());
// prints "(H)ell<O>"
答案 5 :(得分:0)
我看到的最简单的方法是:
public static void main(String[] args) {
Scanner Scan = new Scanner(System.in);
System.out.print("Enter a string: ");
String Str1 = Scan.nextLine();
String newString="";
String Str2 ="";
for (int i=0; i < Str1.length()-1; i++)
{
newString = Str1.charAt(i) + ",";
Str2 = Str2 + newString;
}
Str2 = Str2 + Str1.charAt(Str1.length()-1);
System.out.println(Str2);
}
它将给出的输出是:
run:
Enter a string: Hello world
H,e,l,l,o, ,w,o,r,l,d
BUILD SUCCESSFUL (total time: 5 seconds)
虽然我强烈建议按照@Roman的建议学习正则表达式。直到那时这将成功。 :)