在Java編程中,字符串是一種常見的數(shù)據(jù)類型。當(dāng)我們需要在字符串中保留數(shù)字和字母時(shí),可以使用Java的String類提供的一些方法實(shí)現(xiàn)。
String str = "Hello789World456"; String onlyNumbers = str.replaceAll("[^0-9]", ""); String onlyLetters = str.replaceAll("[^a-zA-Z]", ""); System.out.println("Original string: " + str); System.out.println("Only numbers: " + onlyNumbers); System.out.println("Only letters: " + onlyLetters);
在上面的示例中,我們首先定義了一個(gè)字符串“Hello789World456”。然后,我們使用String類的replaceAll()方法和正則表達(dá)式提取字符串中的數(shù)字和字母。這里的[^0-9]表示除數(shù)字之外的所有字符,[^a-zA-Z]表示除字母之外的所有字符。
最后,我們將原始字符串和提取的數(shù)字/字母打印出來。輸出如下:
Original string: Hello789World456 Only numbers: 789456 Only letters: HelloWorld
注意,使用replaceAll()方法返回的是一個(gè)新的字符串,原始字符串不會(huì)被修改。
除了使用正則表達(dá)式,還可以使用Java的Character類提供的一些方法判斷字符是否是數(shù)字或字母:
String str = "Hello789World456"; StringBuilder onlyNumbers = new StringBuilder(); StringBuilder onlyLetters = new StringBuilder(); for (int i = 0; i< str.length(); i++) { if (Character.isDigit(str.charAt(i))) { onlyNumbers.append(str.charAt(i)); } else if (Character.isLetter(str.charAt(i))) { onlyLetters.append(str.charAt(i)); } } System.out.println("Original string: " + str); System.out.println("Only numbers: " + onlyNumbers); System.out.println("Only letters: " + onlyLetters);
在這個(gè)示例中,我們使用StringBuilder類創(chuàng)建一個(gè)新的字符串來保存數(shù)字和字母。然后使用for循環(huán)遍歷原始字符串,并使用Character類的isDigit()和isLetter()方法判斷每個(gè)字符是數(shù)字還是字母,并將其添加到相應(yīng)的新字符串中。
最后,我們將原始字符串和提取的數(shù)字/字母打印出來。輸出如下:
Original string: Hello789World456 Only numbers: 789456 Only letters: HelloWorld
無論是使用正則表達(dá)式還是Character類的方法,都可以很方便地從字符串中提取數(shù)字和字母。