Java提取字符串中的数字
2021-01-21 18:16
标签:结果 java list scanner string sci 转换 特定 can 在Java中,如果输入一串由其他非数字字符隔开的数字,但却想要将其中的数字提取出来,网上已经给出多种解决方案,以下对这些方法及其对应的情况进行简单的总结,并提出自己的解决方案: 该方法只适用于分离字符串中的单个数字字符,因此得到的结果也是个位数的数字。 此时可以考虑将输入存入String变量,依次读取字符串中的每个字符,并判断是否为数字再将其转化为整型数据。而把单个char类型字符转化为整型的方法,网上已有非常常见的简单转化方法,即将目标数字字符与‘0‘字符相减,以下做出展示: 该方法相比第一种方法,虽然能够筛选出非个位数的数字,但在操作前,需要明确分割数字的字符。 此时可以采用网上给出的一种普遍处理方法,使用split分割字符串再使用Integer中的ParseInt方法将其进行转换: 由于在开发中,常会遇到奇怪刁钻的情况,在这里我提出一些个人的想法与应对方案,如题,若遇到此种情况,例如输入: 解决思路:若要提取其中的数字转化为整型数字,可以考虑遍历字符串中每个字符,若该字符为数字,则往预备区里存入该数字字符,当读到非数字字符时,即可认为预备区里已经有一个完整的数字字符串,此时再考虑将其转化为整型数字。 针对上面给出的输入样例,可得输出: 这种方法同时还可以适用于第一,第二种方法所针对的情况,但如果问题情况非常简单时,当然还是第一,第二种方法省时省力。 以上是自己根据平时总结的一些网络上以及个人的方法和技巧,若有疏漏或更好的建议,非常欢迎对此作出评论或提出意见,这样对我也会有很大的帮助! Java提取字符串中的数字 标签:结果 java list scanner string sci 转换 特定 can 原文地址:https://www.cnblogs.com/minstrel-MH/p/12894106.html1.多个由不确定字符隔开的单个数字
例如:1 5、2,5。1 9 2
import java.util.ArrayList;
import java.util.Scanner;
public class NumberCollector {
public static void main(String[] arge) {
Scanner in = new Scanner(System.in);
String charList = in.nextLine();
ArrayList
2.多个由特定字符隔开的任意数字
若输入的字符串中,数字与数字之间,都是被唯一确定的字符隔开,例如:5 4 6 12 100 3
1,2,51,12,6
import java.util.ArrayList;
import java.util.Scanner;
public class NumberCollector {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String[] numStr = in.nextLine().split(" "); //此处以空格字符分割为例
ArrayList
3.由任意字符隔开的任意数字
5 10,,,103xyz50 a.10
以下给出实现代码:import java.util.ArrayList;
import java.util.Scanner;
public class NumberCollector {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String charList = in.nextLine();
in.close();
String integer = ""; //作为数字字符串的预备区
ArrayList
5
10
103
50
10