Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/326.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 1.4子字符串检索_Java_Substring_Java1.4 - Fatal编程技术网

Java 1.4子字符串检索

Java 1.4子字符串检索,java,substring,java1.4,Java,Substring,Java1.4,我有一个字符串: thorax1 [00400 - 00479] su [00100 - 0022200su] head1 [00100 - 00228] head1 [00100 - 00228] thorax1 [00400 - 00479] lab66 [lab661] 这也可能很大。我需要检索方括号中的值 i、 e.00400-00479,00100-002200SU,00100-00228 我使用了: String Lab

我有一个字符串:

     thorax1  [00400 - 00479]
    su  [00100 - 0022200su]
    head1  [00100 - 00228]
    head1  [00100 - 00228]
    thorax1  [00400 - 00479]
    lab66  [lab661]
这也可能很大。我需要检索方括号中的值

i、 e.00400-00479,00100-002200SU,00100-00228

我使用了:

String Lab1=thorax1  [00400 - 00479]
su  [00100 - 0022200su]
head1  [00100 - 00228]
head1  [00100 - 00228]
thorax1  [00400 - 00479]
lab66  [lab661]

Lab1=    Lab.substring(Lab.indexOf("[")+1,Lab.indexOf("]"));
但这只给了我
00400-00479

我需要像
00400-00479、00100-002200SU、00100-00228这样的输出。


有人能帮我得到欲望的输出吗?

问题是,你试图做的事情只起作用一次。您需要将该逻辑(并添加更多)放入一个循环中

这应该满足您的需要:

String Lab = "thorax1  [00400 - 00479]"
                + "su  [00100 - 0022200su] "
                + "head1  [00100 - 00228] "
                + "head1  [00100 - 00228] "
                + "thorax1  [00400 - 00479] " +
                    "lab66  [lab661]";


        int first = 0;
    int last = 0;
    while(true)
    {   
        first = Lab.indexOf("[", first) + 1;
        last = Lab.indexOf("]", first);
        if(first <= 0)
        {
            break;
        }
        System.out.println(Lab.substring(first, last));
    }

您可以尝试拆分字符串并将每个部分添加到ArrayList数组中,
然后遍历它。

这是一个非常旧的项目。“这是一个非常旧的项目”,这并不意味着它必须只在旧的Java虚拟机上运行。无论如何
子字符串(int start,int end)
返回一个字符串,包括从位置
start
(包含)到位置
end
(独占)的所有字符。您应该考虑使用循环来创建更多的结果,并开始寻找下一个<代码> [< /代码>和“代码> > <代码> >最后一个位置,找到它们。考虑使用<代码> INTROXOF(字符串STR,INTRONMINDEX)或ReXEX使用<代码>模式和<代码> Matcher < /代码>类。查看使用A<代码> Matcher < /代码>,用正则表达式如<代码> \ \ [[[^ ] + ] \>代码>这是给出输出,但我需要用逗号分隔符在一个字符串中输出。(@Suman)那么您可以使用相同的基本算法,但是
将每个子字符串附加到
StringBuilder
中,而不是将其打印出来。
00400 - 00479
00100 - 0022200su
00100 - 00228
00100 - 00228
00400 - 00479
lab661