编写一个程序,允许用户输入一个字符串,然后打印以逗号分隔的字符串

时间:2010-05-02 21:12:29

标签: java

输出始终是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);

    }
}

6 个答案:

答案 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的建议学习正则表达式。直到那时这将成功。 :)