Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 扩大数字范围_Java_Regex_Numbers_Expansion - Fatal编程技术网

Java 扩大数字范围

Java 扩大数字范围,java,regex,numbers,expansion,Java,Regex,Numbers,Expansion,我正试图解决一个困扰我一段时间的问题。我创建了一个小型解析器,它读取.ini文件,然后将数据存储在数组列表中。但是,我被以下片段卡住了: while (!(sCurrentLine.equals("[End]"))) { formats.add(sCurrentLine); for (int i = 0; formats.size() > 0; i++) { } sCurrentLine = br.readLine(); } 现在,我必须在这里将值添加到

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

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

    }
    sCurrentLine = br.readLine();
}
现在,我必须在这里将值添加到
格式
,类型为
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...
并将其存储回
阵列列表中


我不想依赖第三方库。请帮我解决这个问题

使用正则表达式解析范围,然后循环解析的值。有一些微调要做,但我认为这应该让你开始

    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);
        }
    }

类型应该是
List
,而不是raw
ArrayList
,但除此之外,我不清楚您在问什么。如果必须扩展此范围0900.013-017=标签,您会怎么做?这为我解决了问题。。。非常感谢你,先生。我将更改Matcher部分,并通过从调用值的文本文件中获取值对其进行调整..太好了!别忘了投赞成票并接受这个答案。我投了赞成票,但它不会接受我的投票,因为我是这个地方的新蜜蜂……哈哈,只是个小问题。。如果我必须一直领先零呢。因为这些数字是调用某些行描述的值。
0900.13=First label
0900.14=First label
0900.15=First label
0900.16=First label