如何在Java提取出字符串中的数字段(字符串中有好几段数字)?

作者&投稿:晋钧 (若有异议请与网页底部的电邮联系)
java怎么提取出String中所有数字段并分别赋值?~

String str="(12+2)*3";
String result="";
int a,b,c;
//将字符串中的非数字字符转换为空格
for(int i=0;i<str.length();i++){
if(Character.isDigit(str.charAt(i))){
result+=str.charAt(i);
}else{
result+=' ';
}
}
String[] arrStr=result.trim().split("\\s+");//去掉前后空格后,再以空格分割字符串
a=Integer.parseInt(arrStr[0]);
b=Integer.parseInt(arrStr[1]);
c=Integer.parseInt(arrStr[2]);
System.out.printf("a=%d,b=%d,c=%d",a,b,c);//输出a=12,b=2,c=3

如下图,给你贴出了代码段。可以利用字符串的substring函数来进行截取。

其中,substring函数有两个参数:
1、第一个参数是开始截取的字符位置。(从0开始)
2、第二个参数是结束字符的位置+1。(从0开始)
indexof函数的作用是查找该字符串中的某个字的位置,并且返回。
扩展资料:
substring这个函数也可以只写一个参数,就是起始字符位置。这样就会自动截取从开始到最后。
例如:

结果是:456789(注意:包括4。)
示例:
"hamburger".substring(3,8) returns "burge"
"smiles".substring(0,5) returns "smile"
参考资料:百度百科——substring

public static void main(String args[]) throws Exception {
        Pattern p = Pattern.compile("\\d{2,}");//这个2是指连续数字的最少个数
        String u = "abc435345defsfsaf564565fsabad5467755fewfadfgea";
        Matcher m = p.matcher(u);
        int i = 0;
        while (m.find()) {
            System.out.println(m.group());
            i++;
        }
        System.out.println(i);
    }


先找一个判断出是否是数字的正则表达式。

然后遍历你的字符串,一个一个去对比,如果是数字,就提出来。 思路是这样。

String str = "Vz0-Ra0-Sz05.7sc";
for(int i=0;i<str.length();i++){
str.charAt(i);
}

String s="Vz0-Ra0-Sz05.7sc";
String[] ss=s.split("\\D+");//以非数字分割ss数组中就是你要的
for(String s1:ss)
System.out.println(s1);

public class StringSp {

public StringSp() {
}

public static void main(String[] args) {
String[] dist = new String[] { "Vz0-Ra0-Sz05.7sc",
"Vz0-Ra135-Sz15.7sc", "Vz0-Ra180-Sz70.7sc" };
for (String li : dist) {
String[] nums = li.split("\\D+");
for (String num : nums) {
System.out.print(num + "\t");
}
System.out.println();
}
}
}
/*
* 0 0 05 7
0 135 15 7
0 180 70 7
*
*/

用正则、


【JAVA】探讨 Java 中 valueOf 和 parseInt 的区别
在编程过程中,类型转换经常需要使用 parseInt 和 valueOf 方法,尤其是针对 Integer 类型。尽管两者常被交叉使用,但具体区别何在,本文将进行深入探讨。parseInt 方法:首先,parseInt 方法包含两个参数:parseInt(String s, int radix)。radix 表示进制,即输入字符串 s 的进制。若不符合条件,则会抛出 ...

为什么日本IT行业java最好就业?java优势何在?
日本IT行业java最好就业主要是因为Java对初学者很友好、适用范围非常广泛、就业简单、不断更新等优势。大家都知道,日本IT行业java一直是需求最大的岗位。那么java凭什么成为需求最大的技术呢?相比于其他的技术,java的优势何在,小白又应该怎么去学习呢?1、Java对初学者很友好:肯定能找到初学习时比Java...

Java语言中,double p=2.0-1.1; ,打印结果0.8999999,这是什么情况?_百 ...
其实double类型的数据不精确。。。int var=0,那他就是0 因为他是int类型 double var=0.0;是无限接近与0,其实不是0。 很多时候如果需要做高精度的运算需要用到Java中的一个类来实现。证明double=0.0 是无限接近0的办法 try{ int var = 1\/0.0 ; \/\/如果是0会报错。出异常、...

java技术相比C++有什么优势?
java技术相比C++有什么优势? 其实根本没有比较的价值和意义,原因有以下几点:计算机语言更多的是特定一个领域,也就是说如果不指定一个具体的领域,实在没法比较孰优孰劣,比如java在web开发方面的确见长,不过C++在一些传统的应用软件甚至系统级软件引用广泛。各有所侧重,比如Java——奉行一次编译处处...

求解,死活理解不了java面向对象的意思。。。
面向对象是一种编程的思想,并不是Java特性,只是Java支持面向对象。面向对象将程序中的各种元素视为对象,对象具有一定的职责,由多个对象互相协作来完成程序功能。举个简单的例子,简单计算器,这个应该所有Java的书都有教吧:(下面是伪代码)1.一般写法:\/\/读取第一个数a...\/\/读取运算符号x...\/\/...

java 应届生问个问题
Java语言本身降低了编程的难度(相对C语言而言),这样使得更多的人可以成为Java程序员。参差不齐就在所难免。在实际的基于Java的项目中你会大量使用各种各样的Framework。这些Framework在提供了强大的开发支持同时也向开发人员屏蔽了更加底层的实现。作为一个程序员,你不仅需要了解这些Framework如何使用,还...

java语言与c++相比,有哪些优点?
一谈到Java,人们马上会想起一种类似于C++的、适用于分布环境的面向对象编程语言,想到这种语言的简单、稳定、安全、与体系结构无关、可移植、可解释、高性能、多线程和动态性等特征。这些都是Java作为一种程序设计语言的主要特征。 Java是由Sun公司的一个技术小组研制出来的。在实现Java语言的过程中,Sun小组的技术人员...

JAVA编程思想一共有几章
10.8.3 Java归档(jar)实用程序10.9 对象串联10.9.1 寻找类10.9.2 序列化的控制10.9.3 利用“持久性”10.10 总结10.11 练习第11章 运行期类型鉴定11.1 对RTTI的需要11.1.1 Class对象11.1.2 造型前的检查11.2 RTTI语法11.3 反射:运行期类信息11.3.1 一个类方法提取器11.4 总结11.5 练习第12章 传递和返回对象...

Java 向上转型的时候,子类调用了父类的默认构造函数,这代表创建了一个...
没有创建父类对象,D的构造函数里隐式的有一个super();代表父类的构造函数,函数里输出了C,对象是new出来 ,构造函数只是创建对象后进行初始化, 你的代码里只new了一个D 你的理解是调用构造函数即创建了一个对象,理解有问题.对象的创建是new ,构造函数只是初始化,即在创建对象的同时执行了构造函数....

Java市场到底饱和没?就业影响大不大?
而很多正规大学毕业的计算机专业的学生,又只懂得一些浅显的理论知识,完全没有实战经验,这就使得真正有技术含量的java程序员有着更多的优势。但是没有人愿意一生做一个编程的java程序员,那么java程序员的发展何在,前途何在呢?纵观全球众多的IT企业,好的java程序员出路何在呢?最好的选择,就是行业内...

苏家屯区17355166468: Java如何从字符串中提取数字 -
宫适依康: 使用正则表达式可以很方便地从文本中截取数字,下面是详细代码: class Ideone { public static void main (String[] args) throws java.lang.Exception { String phoneString = "哈哈,13888889999"; // 提取数字 // 1 Pattern pattern = Pattern....

苏家屯区17355166468: 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(...

苏家屯区17355166468: 如何在Java提取出字符串中的数字段(字符串中有好几段数字)? -
宫适依康: public static void main(String args[]) throws Exception { Pattern p = Pattern.compile("\\d{2,}");//这个2是指连续数字的最少个数 String u = "abc435345defsfsaf564565fsabad5467755fewfadfgea"; Matcher m = p.matcher(u); int i = 0; while (m.find()) { System.out.println(m.group()); i++; } System.out.println(i); }

苏家屯区17355166468: java中提取字符串中的数字 -
宫适依康: import java.util.regex.Pattern;import java.util.regex.Matcher;public class test{public static void main(String args[]){String str="abc12jlskdf4a";Pattern p = Pattern.

苏家屯区17355166468: java中字符串如何提取数据 -
宫适依康: 1、使用正则表达式. 2、大写英文字母的正则表达式为:^[A-Z]$ 3、java 中使用正则表达式判断取值:String a = "A+B-C*D/F-E+G-(H+R)";String regEx = "^[A-Z]$";for(int i=0;iString s = a.substring(i,i+1); Pattern pat = Pattern.compile(regEx); Matcher mat = pat.matcher(s); boolean rs = mat.find(); if(rs){ System.out.print(s); } } 输出结果:ABCDEFGHR

苏家屯区17355166468: java中怎么把一个字符串中数字和字符分别提取出,例如字符串12+3,要提取成12,3,+,并且打印出来. -
宫适依康: 根据它们的ascii码区分,用正则表达式会简单点: String input="12+3";String regExp="\\D";//非数字的正则表达式String [] nums=input.split(regExp);//取得数字System.out.println(Arrays.asList(nums));//取得非数字Pattern p = Pattern.compile(regExp);Matcher m = p.matcher(input);while(m.find()){System.out.println(m.group());}

苏家屯区17355166468: java怎么获取字符串中指定的值? -
宫适依康: 1. 你如果知道其具体位置 可以用substring ()去截取 2. 如果有特定的特定的分隔符 如“;” 可以用split(“;”)去直接转数组 3. 如果都不知道,悲剧了,循环 一个个去找,一个个判断 char c; for(int i=0;i<str.length;i++){c = str.get(i) ... }

苏家屯区17355166468: Java 中怎么检测字符串中的数字,并提取出来 -
宫适依康: 用正则表达式的几位想法不错,就是有点多了,根本用不到java.util包吧. String s = "ABCD5F7HIJ1"; String [] a = s.split("[\\D]+"); 用这两句就行了,数字都存放在数组a中了,用的时候呢,注意判断下数组的第一个和最后一个中的值是否是数字

苏家屯区17355166468: java如何从串中取出数字? -
宫适依康: 给你个思路,可以用正则表达式去匹配数字,然后提取,一般都是这么做的.希望对你有所帮助

苏家屯区17355166468: java如何从任意字符串中截取数字 -
宫适依康: 用java中String类里的split();方法 这一方法支持正则表达式 用法String str=“1234567.1234”; String [] strs = str.split("[.]"); 就可以得到数组 strs[0] =1234567; strs[1] =1234

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网