Java 从字符串中获取不同数字的列表

Java 从字符串中获取不同数字的列表,java,string,substring,substr,Java,String,Substring,Substr,我有一个包含以下多行的字符串: current num = 13.2 第一部分,current num=,总是相同的,但是后面的数字不同。如何遍历整个字符串并将数字值放入数组?公共静态数组列表getNumbers(字符串s){ public static ArrayList<BigDecimal> getNumbers(String s) { ArrayList<BigDecimal> numbers = new ArrayList<>();

我有一个包含以下多行的字符串:

current num = 13.2
第一部分,
current num=
,总是相同的,但是后面的数字不同。如何遍历整个字符串并将数字值放入数组?

公共静态数组列表getNumbers(字符串s){
public static ArrayList<BigDecimal> getNumbers(String s) {
    ArrayList<BigDecimal> numbers = new ArrayList<>();

    // regular expression
    Pattern p = Pattern.compile("current num\\s?=\\s?(\\d+\\.?\\d*)");
    Matcher m = p.matcher(s);
    // find matches
    while (m.find()) {
        // print out the number after current num =
        numbers.add(new BigDecimal(m.group(1)));
    }
    return numbers;
}

public static void main(String[] args) {
    String s = "current num = 120 current num = 50.5";

    ArrayList<BigDecimal> numbers = getNumbers(s);
    for (BigDecimal number: numbers) {
        System.out.println(number.toString());
    }
}
ArrayList编号=新的ArrayList(); //正则表达式 模式p=Pattern.compile(“当前数值\\s?=\\s?(\\d+\\\.?\\d*)”; 匹配器m=匹配器p; //查找匹配项 while(m.find()){ //打印出当前数值后的数字= 添加(新的BigDecimal(m.group1)); } 返回号码; } 公共静态void main(字符串[]args){ 字符串s=“当前数量=120当前数量=50.5”; ArrayList编号=获取编号; 对于(大十进制数:数字){ System.out.println(number.toString()); } }
公共静态数组列表getNumbers(字符串s){
ArrayList编号=新的ArrayList();
//正则表达式
模式p=Pattern.compile(“当前数值\\s?=\\s?(\\d+\\\.?\\d*)”;
匹配器m=匹配器p;
//查找匹配项
while(m.find()){
//打印出当前数值后的数字=
添加(新的BigDecimal(m.group1));
}
返回号码;
}
公共静态void main(字符串[]args){
字符串s=“当前数量=120当前数量=50.5”;
ArrayList编号=获取编号;
对于(大十进制数:数字){
System.out.println(number.toString());
}
}

从哪里获取字符串?你是从每行有一个这样的语句的文件中读取的还是类似的东西?你可以用正则表达式来实现这一点。请看。@wastl字符串是一个html文件。所以它不是每行的一个语句。它们分散在各处。空白区总是一样的吗?你提前知道会有多少价值观吗?数据类型是否总是
int
,或者是否存在其他数字格式(指数、浮点)。有负号吗?在解析数字时,有很多事情需要担心…字符串从何处获得的可能重复?你是从每行有一个这样的语句的文件中读取的还是类似的东西?你可以用正则表达式来实现这一点。请看。@wastl字符串是一个html文件。所以它不是每行的一个语句。它们分散在各处。空白区总是一样的吗?你提前知道会有多少价值观吗?数据类型是否总是
int
,或者是否存在其他数字格式(指数、浮点)。有负号吗?当解析数字时,有很多事情需要担心…可能是重复的感谢这很好。但我对我的问题做了一个小小的调整:数字被四舍五入到小数点后一位。我怎样才能把那部分也保留下来?对不起,我想我说错了。我的意思是说原始字符串包含十进制值。我不需要将它们四舍五入,因为它们已经四舍五入到小数点后1位。我只需要正则表达式包含小数点和后面的数字。我该怎么做?再次感谢。@user3307102很确定我们现在拿到了。是的,太好了。谢谢。谢谢。这很好用。但我对我的问题做了一个小小的调整:数字被四舍五入到小数点后一位。我怎样才能把那部分也保留下来?对不起,我想我说错了。我的意思是说原始字符串包含十进制值。我不需要将它们四舍五入,因为它们已经四舍五入到小数点后1位。我只需要正则表达式包含小数点和后面的数字。我该怎么做?再次感谢。@user3307102很确定我们现在拿到了。是的,太好了。谢谢