java string 字符个数字_java从字符串中提取数字
string類函數的補充說明:
trim()方法返回調用字符串對象的一個副本,但是所有起始和結尾的空格都被刪除了,例子如下:String s=" Hello World ".trim();就是把"Hello World"放入s中。(注意使用時必須賦值)
1 String類提供的方法:
package測試練習;import Java.util.*;public classget_StringNum {/***2016.10.25*/
public static voidmain(String[] args) {
String str= "love23next234csdn3423javaeye";
str=str.trim();
String str2="";if(str != null && !"".equals(str)){for(int i=0;i=48 && str.charAt(i)<=57){
str2+=str.charAt(i);
}
}
}
System.out.println(str2);
}
}
output:232343423
這個方法有個明顯的缺點,只能把數字全部提取到一起,不能分別提取。當然也可以改進,有興趣的朋友可以試試。
2 正則表達式
import java.util.*;importjava.util.regex.Matcher;importjava.util.regex.Pattern;public classget_StringNum {/***2016.10.25*/
public static voidmain(String[] args) {
String a="love23next234csdn3423javaeye";
String regEx="[^0-9]";
Pattern p=Pattern.compile(regEx);
Matcher m=p.matcher(a);
System.out.println( m.replaceAll("").trim());
}
}
output:232343423
Pattern ,Matcher是java.util.regex軟件包里的兩個類,具體用法大家可以查閱一下api。同樣也不能單個提取數字。
Pattern類的作用在于編譯正則表達式后創建一個匹配模式.
Matcher類使用Pattern實例提供的模式信息對正則表達式進行匹配
Pattern complie(String regex)
由于Pattern的構造函數是私有的,不可以直接創建,所以通過靜態方法compile(String regex)方法來創建,將給定的正則表達式編譯并賦予給Pattern類
String pattern() 返回正則表達式的字符串形式,其實就是返回Pattern.complile(String regex)的regex參數
String regex = "\\?|\\*";
Pattern pattern=Pattern.compile(regex);
String patternStr= pattern.pattern();//返回\?\*
replaceAll() 方法使用給定的參數 replacement 替換字符串所有匹配給定的正則表達式的子字符串
3 集合類庫
import java.util.*;importjava.util.regex.Matcher;importjava.util.regex.Pattern;public classget_StringNum {/***2016.10.25*/
public static voidmain(String[] args) {
String a="love23next234csdn3423javaeye";
List digitList = new ArrayList();
Pattern p= Pattern.compile("[^0-9]");
Matcher m=p.matcher(a);
String result= m.replaceAll("");for (int i = 0; i < result.length(); i++) {
digitList.add(result.substring(i, i+1));
}
System.out.println(digitList);
}
}
output:
[2, 3, 2, 3, 4, 3, 4, 2, 3]
相同的思路:
import java.util.*;importjava.util.regex.Matcher;importjava.util.regex.Pattern;public classget_StringNum {/***2016.10.25*/
public static voidmain(String[] args) {
String a="love23next234csdn3423javaeye";
List ss = new ArrayList();for(String sss:s.replaceAll("[^0-9]", ",").split(",")){if (sss.length()>0)
ss.add(sss);
}
System.out.print(ss);
}
}
output:
[2, 3, 2, 3, 4, 3, 4, 2, 3]
很明顯,利用正則表達式我們就可以分別提取數字了。
另外還有一個利用查閱文檔找出的答案,如下:
/*** 從字符串文本中獲得數字
*@paramtext
*@return
*/publicstatic
ListgetDigit(String text) {
ListdigitList=newArrayList();
Pattern p=Pattern.compile("(\\d+)");
Matcher m=p.matcher(text);while(m.find()) {
String find=m.group(1).toString();
digitList.add(Long.valueOf(find));
}returndigitList;
}
兩個用正則表達式匹配的判斷方法,如下;
//判斷一個字符串是否都為數字
public booleanisDigit(String strNum) {return strNum.matches("[0-9]{1,}");
}//判斷一個字符串是否都為數字
public booleanisDigit(String strNum) {
Pattern pattern= Pattern.compile("[0-9]{1,}");
Matcher matcher=pattern.matcher((CharSequence) strNum);returnmatcher.matches();
}//截取數字
publicString getNumbers(String content) {
Pattern pattern= Pattern.compile("\\d+");
Matcher matcher=pattern.matcher(content);while(matcher.find()) {return matcher.group(0);
}return "";
}//截取非數字
publicString splitNotNumber(String content) {
Pattern pattern= Pattern.compile("\\D+");
Matcher matcher=pattern.matcher(content);while(matcher.find()) {return matcher.group(0);
}return "";
}
總結
以上是生活随笔為你收集整理的java string 字符个数字_java从字符串中提取数字的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 网络出版商担忧谷歌AI搜索会白嫖内容 损
- 下一篇: SSD能有多便宜:2TB新品不到700元