在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()給我的組合。 –