从字符串中删除所有空格和标点符号(不是任何字母)?

时间:2014-02-21 22:00:16

标签: java string

在Java中,如何将字符串作为参数,然后删除所有标点符号和空格,然后将其余字母转换为大写?

示例1:

输入:How's your day going?

输出:HOWSYOURDAYGOING

示例2:

输入:What's your name again?

输出:WHATSYOURNAMEAGAIN

5 个答案:

答案 0 :(得分:5)

这应该可以解决问题

String mystr= "How's your day going?";
mystr = mystr.replaceAll("[^A-Za-z]+", "").toUpperCase();
System.out.println(mystr);

输出:

HOWSYOURDAYGOING

正则表达式[^A-Za-z]+表示与A-Za-z范围内的任何内容都不匹配的一个或多个字符,我们将其替换为空字符串。

答案 1 :(得分:2)

String yourString = "How's your day going";
yourString=yourString.replaceAll("\\s+",""); //remove white space
yourString=yourString.replaceAll("[^a-zA-Z ]", ""); //removes all punctuation
yourString=yourString.toUpperCase(); //convert to Upper case

答案 2 :(得分:1)

public static String repl1(String n){
    n = n.replaceAll("\\p{Punct}|\\s","");
    return n;
}

答案 3 :(得分:0)

我是这样做的

inputText = inputText.replaceAll("\\s|[^a-zA-Z0-9]","");


inputText.toUpper();  //and later uppercase the complete string

尽管@italhourne的回答是正确的,但是您可以通过删除空格以及保留a-zA-Z和0-9中的所有字符,而在一个步骤中通过添加“要么”。 只是对那些需要它的人的帮助!

答案 4 :(得分:-2)

好吧,我做了很长的路,看看你是否想要。我使用了ACII代码值(这是我的主要方法,将其转换为自己的函数)。

String str="How's your day going?";
    char c=0;
    for(int i=0;i<str.length();i++){
        c=str.charAt(i);
        if(c<65||(c>90&&c<97)||(c>122)){
            str=str.replace(str.substring(i,i+1) , "");
        }
    }
    str=str.toUpperCase();
    System.out.println(str);