2014-02-21 165 views
0

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

实施例1:

输入:How's your day going?

输出:HOWSYOURDAYGOING

实施例2:

输入:What's your name again?

输出:WHATSYOURNAMEAGAIN

+4

你试过了什么? – Prince

+0

http://stackoverflow.com/questions/12734721/using-string-replace-in-java和http://docs.oracle.com/javase/6/docs/api/java/lang/String.html#toUpperCase ()只是一个开始.. –

+1

听起来像正则表达式和.toUpper()给我的组合。 –

回答

1
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 
+0

@admdrew良好的捕获,在适当的地方编辑。 – ltalhouarne

+0

你仍然可以杀死你的第二行,并让你的正则表达式处理所有不在'a-z'和'A-Z'中的字符 – admdrew

3

这应该做的伎俩

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匹配任何东西,我们用空替换它们串。

0

那么,我做了很长的路要走,看看你是否想要。我使用了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); 
相关问题