用java从文件中提取数值
我的文件(rates.txt)包含:用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*(\\
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=“”
List
splitElements=Arrays.asList(str.split(“\s+”)李> - 然后,循环遍历列表中的每个元素,最好创建一个helperMethod来验证元素是否为数字。可以通过以下方式实现: 公共静态布尔值是数字(字符串){
试试
{
int intString=Integer.parseInt(字符串);
}
catch(NumberFormatException ex)
{
返回false;
}
返回true;
}- 请注意,它只解析int数字,创建更多的助手方法,您就完成了,希望它能有所帮助
- 循环浏览文件中的每一行
- 为此,可以使用迭代器及其方法hasNext()
- 检索到一行后,按如下方式将其按空格拆分:
字符串str=“”
List
splitElements=Arrays.asList(str.split(“\s+”)李> - 然后,循环遍历列表中的每个元素,最好创建一个helperMethod来验证元素是否为数字。可以通过以下方式实现: 公共静态布尔值是数字(字符串){
试试
{
int intString=Integer.parseInt(字符串);
}
catch(NumberFormatException ex)
{
返回false;
}
返回true;
}- 请注意,它只解析int数字,创建更多的助手方法,您就完成了,希望它能有所帮助
- 然后,循环遍历列表中的每个元素,最好创建一个helperMethod来验证元素是否为数字。可以通过以下方式实现: 公共静态布尔值是数字(字符串){
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"); } } }
- 然后,循环遍历列表中的每个元素,最好创建一个helperMethod来验证元素是否为数字。可以通过以下方式实现: 公共静态布尔值是数字(字符串){