使用正則表達(dá)式可以很方便地從文本中截取數(shù)字,下面是詳細(xì)代碼:
會(huì)同ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為成都創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18980820575(備注:SSL證書合作)期待與您的合作!
class Ideone
{
public static void main (String[] args) throws java.lang.Exception
{
String phoneString = "哈哈,13888889999";
// 提取數(shù)字
// 1
Pattern pattern = Pattern.compile("[^0-9]");
Matcher matcher = pattern.matcher(phoneString);
String all = matcher.replaceAll("");
System.out.println("phone:" + all);
// 2
Pattern.compile("[^0-9]").matcher(phoneString).replaceAll("");
}
}
用正則表達(dá)式按數(shù)字和中文的交界處切分字符串,就可以實(shí)現(xiàn)你的要求,完整的Java程序如下
public class F{
public static void main(String[] args){
String str="魚豆腐20海帶3掌中寶8雞翅2可樂2";
String[] s=str.split("(?=[0-9])(?=[\u4e00-\u9fa5])");
for(int i=0;is.length;i++){
System.out.println(s[i]);
}
}
}
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Arrays;
public class NumberSplit {
public StringBuffer getString(String str) {
StringBuffer strbuf = new StringBuffer("t");
boolean flag = true;
for (int i = 0; i str.length(); i++) {
char c = str.charAt(i);
// 判斷是否是數(shù)字
if (c = '0' c = '9') {
// 判斷和字符串中的數(shù)字是否重復(fù)
for (int j = 1; j strbuf.length(); j++) {
if (c == strbuf.charAt(j)) {
// 如果重復(fù),標(biāo)志位數(shù)值為false,并跳出循環(huán);否則標(biāo)志位設(shè)置為true.
flag = false;
break;
} else
flag = true;
}
// 只有在即是數(shù)字又不重復(fù)的情況下才將改字符拼接到字符串上.
if (flag) {
strbuf.append(c);
}
}
}
return strbuf;
}
public static void main(String args[]) throws Exception {
System.out.println("請(qǐng)輸入一段字符串,并以回車結(jié)束");
BufferedReader buf = new BufferedReader(
new InputStreamReader(System.in));
String str = buf.readLine();
StringBuffer strbuf = new NumberSplit().getString(str);
// 將返回的StringBuffer轉(zhuǎn)換為字符數(shù)組
char c[] = strbuf.deleteCharAt(0).toString().toCharArray();
// 對(duì)字符數(shù)組排序
Arrays.sort(c);
// 輸出字符數(shù)組
for (int i = 0; i strbuf.length(); i++) {
System.out.print(c[i]);
}
}
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Arrays;
public class NumberSplit {
public StringBuffer getString(String str) {
StringBuffer strbuf = new StringBuffer("t");
boolean flag = true;
for (int i = 0; i str.length(); i++) {
char c = str.charAt(i);
// 判斷是否是數(shù)字
if (c = '0' c = '9') {
// 判斷和字符串中的數(shù)字是否重復(fù)
for (int j = 1; j strbuf.length(); j++) {
if (c == strbuf.charAt(j)) {
?// 如果重復(fù),標(biāo)志位數(shù)值為false,并跳出循環(huán);否則標(biāo)志位設(shè)置為true.
flag = false;
?break;
} else
?flag = true;
}
// 只有在即是數(shù)字又不重復(fù)的情況下才將改字符拼接到字符串上.
if (flag) {
strbuf.append(c);
}
}
}
return strbuf;
}
public static void main(String args[]) throws Exception {
System.out.println("請(qǐng)輸入一段字符串,并以回車結(jié)束");
BufferedReader buf = new BufferedReader(
new InputStreamReader(System.in));
String str = buf.readLine();
StringBuffer strbuf = new NumberSplit().getString(str);
// 將返回的StringBuffer轉(zhuǎn)換為字符數(shù)組
char c[] = strbuf.deleteCharAt(0).toString().toCharArray();
// 對(duì)字符數(shù)組排序
Arrays.sort(c);
// 輸出字符數(shù)組
for (int i = 0; i strbuf.length(); i++) {
System.out.print(c[i]);
}
}