如何在字符串java中对字符进行排序并删除标点符号

时间:2014-03-27 21:24:04

标签: java sorting replace

需要一些帮助,我需要从用户输入字中删除空格和标点符号。然后通过重新排列字母(没有特定的方式)对其进行排序。

我的问题是我可以删除标点符号和空格,或者我可以对字符进行排序,但我不能让它同时执行这两个操作。它只打印出十六进制。请帮忙。

公共课Assignment6_main {

/**
 * @param args the command line arguments
 */
public static void main(String[] args) {

    Scanner input = new Scanner(System.in);
    System.out.println("Enter a string: ");
    String s = input.nextLine();

    sort(s);

}

public static void sort(String myString) {

    char[] chars = myString.toCharArray();

//排序字符

    Arrays.sort(chars);

//删除标点符号和空格

    String noPuncs = myString.replaceAll("\\W", "");

    System.out.println(noPuncs + chars);

} }

4 个答案:

答案 0 :(得分:0)

您需要手动将字符数组转换回字符串:

    System.out.println(noPuncs + new String(chars));

当你做一个简单的

    System.out.println(chars);

你正在调用println(char x []),它很聪明地让事情看起来不错,但是当你用String连接它时,你将在原始数组上调用toString(),这只是给出了你是一个对象参考。

答案 1 :(得分:0)

我认为这就是你想要做的。您替换字符串FIRST的所有空格,然后将其转换为char数组并对其进行排序。此外," noPuncs"真的不是这个字符串是什么,它应该是" noWhitespace"。你还没有删除任何标点符号。

public static void sort(String myString) {

    String noWhitespace = myString.replaceAll("\\W", "");
    char[] chars = noWhitespace.toCharArray();
    //sort characters

    Arrays.sort(chars);
    //remove punctuation and white space

    System.out.println(noWhitespace + new String(chars));
}

答案 2 :(得分:0)

你几乎拥有它。 \ W看起来需要两次转义,如果你对删除了字符的字符串进行排序,你可以打印出来:

public static void sort(String myString) {

   String noPuncs = myString.replaceAll("\\W", "");

   char[] chars = noPuncs.toCharArray();
   Arrays.sort(chars);
   System.out.println(chars);

} }

答案 3 :(得分:0)

关于标点符号,您可能会从此question in stackoverflow

中找到一些有趣的信息