在Java中,我如何将字符串作为参数,然后删除所有标点符号和空格,然后将其余字母转换为大写?从字符串中删除所有空格和标点符号(不是字母)?
实施例1:
输入:How's your day going?
输出:HOWSYOURDAYGOING
实施例2:
输入:What's your name again?
输出:WHATSYOURNAMEAGAIN
在Java中,我如何将字符串作为参数,然后删除所有标点符号和空格,然后将其余字母转换为大写?从字符串中删除所有空格和标点符号(不是字母)?
实施例1:
输入:How's your day going?
输出:HOWSYOURDAYGOING
实施例2:
输入:What's your name again?
输出:WHATSYOURNAMEAGAIN
String yourString = "How's your day going";
yourString=yourString.replaceAll("\\s+",""); //remove white space
yourString=yourString.replaceAll("[^a-zA-Z ]", ""). //remove all punctuation
yourString=yourString.toUpperCase(); //convert to Upper case
@admdrew良好的捕获,在适当的地方编辑。 – ltalhouarne
你仍然可以杀死你的第二行,并让你的正则表达式处理所有不在'a-z'和'A-Z'中的字符 – admdrew
这应该做的伎俩
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
匹配任何东西,我们用空替换它们串。
那么,我做了很长的路要走,看看你是否想要。我使用了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);
你试过了什么? – Prince
http://stackoverflow.com/questions/12734721/using-string-replace-in-java和http://docs.oracle.com/javase/6/docs/api/java/lang/String.html#toUpperCase ()只是一个开始.. –
听起来像正则表达式和.toUpper()给我的组合。 –