Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/399.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将文本拆分为2个数组_Java_Android_Html_Arrays - Fatal编程技术网

Java将文本拆分为2个数组

Java将文本拆分为2个数组,java,android,html,arrays,Java,Android,Html,Arrays,我有以下案文: <option value="{0}">hello1</option> <option value="{1}">hello2</option> <option value="{2}">hello3</option> <option value="{3}">hello4</option> <option value="{4}">hell

我有以下案文:

    <option value="{0}">hello1</option>
    <option value="{1}">hello2</option>
    <option value="{2}">hello3</option>
    <option value="{3}">hello4</option>
    <option value="{4}">hello5</option>
    <option value="{5}">hello6</option>
    <option value="{6}">hello7</option>
    <option value="{7}">hello8</option>
那么,有没有关于如何将helloX放入nameArray并将所有值放入valueArray的技巧


//Simon

您可以使用
start=str.indexof(“>”)找到
的位置


另外,
的位置使用正则表达式并填充数组。下面是我编写的一个小测试程序:

public static void main(String [] args) {
    Pattern p = Pattern.compile("<option value=\"(.*?)\">(.*?)</option>");
    String line = "<option value=\"{1}\">hello0</option>";
    Matcher m = p.matcher(line);
    while (m.find()) {
        String value = m.group(1);
        String name = m.group(2);
        System.out.println(value);
        System.out.println(name);
        // Now add to your arrays
    }
}
publicstaticvoidmain(字符串[]args){
模式p=Pattern.compile((.*);
字符串line=“hello0”;
匹配器m=p.匹配器(线);
while(m.find()){
字符串值=m.group(1);
字符串名称=m.group(2);
系统输出打印项次(值);
System.out.println(名称);
//现在添加到数组中
}
}

我不会将其用作解析复杂xml文件的标准方法。如果是这种情况,请使用xml解析器。

您需要使用XMLPullParser,然后为您的值解析选项开始标记。我发现这种类型的解决方案既笨重又容易出错。如果
hello0
,它将很快失败。嗯,m.matches永远都不是真的…你知道吗?好吧,你的代码可以工作,但如果我用string替换line,它将找不到。你能提供你试图解析的实际字符串吗?在这种情况下,使用m.find()而不是m.matches()。如果每行文本可能存在多个匹配项,请多次调用m.find(),直到它返回false
public static void main(String [] args) {
    Pattern p = Pattern.compile("<option value=\"(.*?)\">(.*?)</option>");
    String line = "<option value=\"{1}\">hello0</option>";
    Matcher m = p.matcher(line);
    while (m.find()) {
        String value = m.group(1);
        String name = m.group(2);
        System.out.println(value);
        System.out.println(name);
        // Now add to your arrays
    }
}