gpt4 book ai didi

java - 扩大数字范围

转载 作者:行者123 更新时间:2023-11-30 05:25:56 25 4
gpt4 key购买 nike

我正在尝试解决困扰我一段时间的问题。我创建了一个小型解析器,它读取 .ini 文件,然后将数据存储在 ArrayList 中。但是,我被以下代码片段困住了:

while (!(sCurrentLine.equals("[End]"))) {
formats.add(sCurrentLine);
for (int i = 0; formats.size() > 0; i++) {

}
sCurrentLine = br.readLine();
}

现在,我必须将值添加到 formats 中,该格式的类型为 ArrayList。将像这样添加的值:

0900.013-017=LABEL
0900.018-029=LABEL

现在范围介于两者之间,我还必须确保“0900”和“=label”随着数字的扩展而重复,例如:

0900.013=LABEL
0900.014=LABEL
0900.015=LABEL
0900.016=LABEL and so on...

并将其存储回ArrayList中。

我不想依赖第三方库。这个你能帮我吗。

最佳答案

使用正则表达式解析范围,然后循环解析解析后的值。有一些微调需要完成,但我认为这应该可以帮助您开始。

    Pattern rangePattern = Pattern.compile("([0-9]+)\\.([0-9]+)-([0-9]+)=(.*)$");
Matcher rangeMatcher = rangePattern.matcher("0900.13-17=First label");

if (rangeMatcher.matches()) {

String prefix = rangeMatcher.group(1);
int start = Integer.parseInt(rangeMatcher.group(2));
int end = Integer.parseInt(rangeMatcher.group(3));
String label = rangeMatcher.group(4);

for (int r = start; r < end; r++) {
System.out.println(prefix + "." + r + "=" + label);
}
}

创建一次模式,然后每次通过循环获取新的匹配器。

结果:

0900.13=First label
0900.14=First label
0900.15=First label
0900.16=First label

关于java - 扩大数字范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58612692/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com