Q1:java如何從任意字符串中截取數字
使用正則表達式可以很方便地從文本中截取數字,下面是詳細代碼:
class Ideone
{
public static void main (String[] args) throws java.lang.Exception
{
String phoneString = "哈哈,13888889999";
// 提取數字
// 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("");
}
}
Q2:怎麼用Java把輸入的字符串中的數字提取出來,並且把求數字相加之和?
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class tst {
public static void main(String[] args) {
String s = "fas30deg60ds190$%^";
Matcher m = Pattern.compile("\d+").matcher(s);
int num = 0;
while (m.find()) {
num = num + Integer.parseInt(m.group(0));
}
System.out.println(num);
}
}
Q3:java怎麼將字符串中的數字取出來?
import java.util.regex.Matcher;
import java.util.regex.Pattern;/**
*
*
*
* @since JDK 1.4、 * @version 1.0
*
*/
public class Main {
public static void main(String[] args) {
String s = "阿里145山1的61歌17哦13我7呢819如果";
Pattern p = Pattern.compile("[0-9]");
Matcher m = p.matcher(s); while (m.find()) {
System.out.println(m.group());
}
}
}
Q4:JAVA怎樣快速把字符串裏面的數字取出來
char[] charArray=date.toCharArray();
//這是方法一 獲得固定位置上的數字,因為我看你這個數字是在固定位置上的,所以論速度這個是最快的沒有判斷直接獲取
String newDate=charArray[0]+charArray[1]+charArray[2]+charArray[3]+charArray[5]+charArray[6]+charArray[8]+charArray[9];
方法二:
對charArray進行遍歷,如果是數字就加到新的字符串的尾巴上。這種需要判斷很多次,速度沒那麼快。
方法三:你可以看看正則表達式的方法。
方法四:逆向思維,如果是"-"或者是" "," : "就過濾掉
我説的都是原理,他們説的都是方法。但是最快的肯定是我的第一個方法。別人的和我的方法二和四類似。
Q5:java中提取字符串中的數字
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);
// 判斷是否是數字
if (c >= 0&& c <= 9) {
// 判斷和字符串中的數字是否重複
for (int j = 1; j < strbuf.length(); j++) {
if (c == strbuf.charAt(j)) {
// 如果重複,標誌位數值為false,並跳出循環;否則標誌位設置為true.
flag = false;
break;
} else
flag = true;
}
// 只有在即是數字又不重複的情況下才將改字符拼接到字符串上.
if (flag) {
strbuf.append(c);
}
}
}
return strbuf;
}
public static void main(String args[]) throws Exception {
System.out.println("請輸入一段字符串,並以回車結束");
BufferedReader buf = new BufferedReader(
new InputStreamReader(System.in));
String str = buf.readLine();
StringBuffer strbuf = new NumberSplit().getString(str);
// 將返回的StringBuffer轉換為字符數組
char c[] = strbuf.deleteCharAt(0).toString().toCharArray();
// 對字符數組排序
Arrays.sort(c);
// 輸出字符數組
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);
// 判斷是否是數字
if (c >= 0&& c <= 9) {
// 判斷和字符串中的數字是否重複
for (int j = 1; j < strbuf.length(); j++) {
if (c == strbuf.charAt(j)) {
// 如果重複,標誌位數值為false,並跳出循環;否則標誌位設置為true.
flag = false;
break;
} else
flag = true;
}
// 只有在即是數字又不重複的情況下才將改字符拼接到字符串上.
if (flag) {
strbuf.append(c);
}
}
}
return strbuf;
}
public static void main(String args[]) throws Exception {
System.out.println("請輸入一段字符串,並以回車結束");
BufferedReader buf = new BufferedReader(
new InputStreamReader(System.in));
String str = buf.readLine();
StringBuffer strbuf = new NumberSplit().getString(str);
// 將返回的StringBuffer轉換為字符數組
char c[] = strbuf.deleteCharAt(0).toString().toCharArray();
// 對字符數組排序
Arrays.sort(c);
// 輸出字符數組
for (int i = 0; i < strbuf.length(); i++) {
System.out.print(c[i]);
}
}
Q6:java提取字符串中的多個數字
1234Stringdd="字(2014)第QD0023號";System.out.println(dd=dd.replaceAll("\D","_").replace("_+","_"));String[]as=dd.split("_+");System.out.println(Arrays.asList(as));
下面是我的結果
__2014____0023_
[, 2014, 0023]
\D 的意思就是 所有非數字的符號
_+ 的意思就是多個_
這裏是使用的正則
Q7:怎麼用java把輸入的字符串中的數字提取出來
class Num
{
public static void main(String[] args)
{
System.out.println("Enter a mass string with digit in.");
String s = Console.readString();
//String s = "a0s9ad1sj5a0h1fus6a";
char [] mass = s.toCharArray();
String d ="" ;
for(int i=0; i
if (Character.isDigit(mass [i]))
{
d = d + mass [i];
}
}
System.out.println();
System.out.print("The number is:");
System.out.println(d);
}
}
www.bazhIS。HI.coM
