成语| 古诗大全| 扒知识| 扒知识繁体

当前位置:首页 > 趣味生活

JAVA 提取字符串中的所有数字

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

猜你喜欢

更多