拆分<>中包含的字符串符号并删除Java中的符号

时间:2013-11-07 18:30:27

标签: java string split

我有一个字符串

String str = "<Java><SQL>";

我想在删除&lt;&gt;之后将其存储在String []中符号为:

String[] str1 = "Java,SQL";

此外,我想让它迭代,即每次我有一个新的字符串,它应该只删除&lt;&gt;并在前面的String []中附加不同的部分。

我查看了split()方法或matches()方法等不同方法,但我无法做到。

2 个答案:

答案 0 :(得分:2)

Basiclly wyxz回答。

str1.substring(1, str1.length() - 1).replace("><", ", ").

答案 1 :(得分:0)

你需要做两件事:

  1. 删除尾随的<>
  2. 拆分><
  3. 这可以在一行中完成:

    final String[] split = "<Java><SQL>".replaceAll("(?:^<)|(?:>$)", "").split("><");
    

    如果要连接连续的输入字符串,则需要使用List,因为数组具有固定长度。

    如果您将拆分拆分为实用程序方法:

    public static void main(final String args[]) {
        final List<String> myStrings = new LinkedList<>();
        final String s = "<Java><SQL>";
        myStrings.addAll(split(s));
        System.out.println(myStrings);
        myStrings.addAll(split(s));
        System.out.println(myStrings);
        myStrings.addAll(split(s));
        System.out.println(myStrings);
        myStrings.addAll(split(s));
        System.out.println(myStrings);
    }
    
    public static List<String> split(final String in) {
        return Arrays.asList(in.replaceAll("(?:^<)|(?:>$)", "").split("><"));
    }
    

    输出:

    [Java, SQL]
    [Java, SQL, Java, SQL]
    [Java, SQL, Java, SQL, Java, SQL]
    [Java, SQL, Java, SQL, Java, SQL, Java, SQL]