用java从文件中提取数值

用java从文件中提取数值,java,file,integer,substring,extract,Java,File,Integer,Substring,Extract,我的文件(rates.txt)包含:Abc defghijk lmn opqr st uvwxyza bc 19 我只想从文件中提取19,并将其存储为整数 我该怎么办 我尝试过使用子字符串,但不确定使用什么方法使其仅选择数值 谢谢如果使用正则表达式怎么办。 试试这个(我假设您只有一个整数值): 模式“\D*(\D+)\D*”实际上意味着: \D*:多个非数字字符(包括零个字符) \d+:多位数字符 因此,我们正在搜索由一些非数字字符包围的数字字符 Pattern.compile("\\D*(\\

我的文件(rates.txt)包含:
Abc defghijk lmn opqr st uvwxyza bc 19

我只想从文件中提取
19
,并将其存储为整数

我该怎么办

我尝试过使用子字符串,但不确定使用什么方法使其仅选择数值


谢谢

如果使用正则表达式怎么办。 试试这个(我假设您只有一个整数值):

模式“\D*(\D+)\D*”实际上意味着:

\D*:多个非数字字符(包括零个字符)

\d+:多位数字符

因此,我们正在搜索由一些非数字字符包围的数字字符

Pattern.compile("\\D*(\\d+)\\D*");

如果使用正则表达式会怎么样。 试试这个(我假设您只有一个整数值):

模式“\D*(\D+)\D*”实际上意味着:

\D*:多个非数字字符(包括零个字符)

\d+:多位数字符

因此,我们正在搜索由一些非数字字符包围的数字字符

Pattern.compile("\\D*(\\d+)\\D*");
  • 循环浏览文件中的每一行
  • 为此,可以使用迭代器及其方法hasNext()
  • 检索到一行后,按如下方式将其按空格拆分: 字符串str=“”

    ListsplitElements=Arrays.asList(str.split(“\s+”)
  • 然后,循环遍历列表中的每个元素,最好创建一个helperMethod来验证元素是否为数字。可以通过以下方式实现:

    公共静态布尔值是数字(字符串){
    试试
    {
    int intString=Integer.parseInt(字符串);
    }
    catch(NumberFormatException ex)
    {
    返回false;
    }
    返回true;
    }

  • 请注意,它只解析int数字,创建更多的助手方法,您就完成了,希望它能有所帮助

      • 循环浏览文件中的每一行
      • 为此,可以使用迭代器及其方法hasNext()
      • 检索到一行后,按如下方式将其按空格拆分: 字符串str=“”

        ListsplitElements=Arrays.asList(str.split(“\s+”)
      • 然后,循环遍历列表中的每个元素,最好创建一个helperMethod来验证元素是否为数字。可以通过以下方式实现:

        公共静态布尔值是数字(字符串){
        试试
        {
        int intString=Integer.parseInt(字符串);
        }
        catch(NumberFormatException ex)
        {
        返回false;
        }
        返回true;
        }

      • 请注意,它只解析int数字,创建更多的助手方法,您就完成了,希望它能有所帮助


      您的答案也将取决于数据的一致性。数字数据总是在末尾吗?是否总是会有一个数字标记,而所有其他标记都是字母标记?好奇的人想知道。这只是一段数据,我只想导入数据并取出数字19,这样我就可以在程序中使用它。你的答案也将取决于你数据的一致性。数字数据总是在末尾吗?是否总是会有一个数字标记,而所有其他标记都是字母标记?好奇的人想知道。这只是一段数据,我所要做的就是导入数据并取出数字19,这样我就可以在程序中使用它。只使用代码的答案不如包含代码执行的解释的答案有用。“教一个人钓鱼”,所有这些。纯代码的答案都不如解释代码在做什么那样有用。“教人钓鱼”等等。
      import java.util.regex.Matcher;
      import java.util.regex.Pattern;
      public class Main {
          public static void main(String[] args) {
              String text = "xAbc defghijk lmn opqr st uvwxyza bc 19";
              Pattern pattern = Pattern.compile("([0-9]+)");
              Matcher matcher = pattern.matcher(text);
              if(matcher.find()) {
                  int number = Integer.valueOf(matcher.group(1));
                  System.out.println("First number: "+number);
              }
              else {
                  System.out.println("Not found");
              }
          }
      }