在Java中,如何将字符串作为参数,然后删除所有标点符号和空格,然后将其余字母转换为大写?
示例1:
输入:How's your day going?
输出:HOWSYOURDAYGOING
示例2:
输入:What's your name again?
输出:WHATSYOURNAMEAGAIN
答案 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);