2014-02-21 186 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); 
相關問題