以不同的方式在java中拆分字符串

时间:2017-02-17 16:35:42

标签: java string split

我是java的新手。我想将字符串拆分为以下方式。 假设我已经提供了一个字符串输入,例如样本1 jayesh =10 vyas =13 harshit=10; and so on作为输入 样本2:harsh=2, vyas=5;

现在我想将jayesh, vyas, harshit from sample 1 and harsh , vyas from sample 2(all this type of strings which are just before the assignment operator)存储到字符串或字符数组中。

所以有人可以告诉我如何在java中这样做。我知道java中的split方法,但在这种情况下,我必须存储多个字符串。

2 个答案:

答案 0 :(得分:4)

您可以使用=\\d+;?正则表达式

=\\d+;?匹配=以及;个数字作为可选

    String s="jayesh =10 vyas =13 harshit=10;";
    String[] ss=s.split("=\\d+;?");
    System.out.println(Arrays.toString(ss));

输出

[jayesh ,  vyas ,  harshit]

要进一步扩展,您可以使用\\s*=\\d+[,;]?\\s*

\\s*:匹配零个或多个空格

[,;]?将列表中提及的任何字符匹配为可选

但如果你想在数字之后避免使用任何特殊字符,请使用

\\s*=\\d+\\W*"

\\s*=:匹配零个或多个空格和=个字符

\\d+:匹配一个或多个数字

\W*:匹配零个或多个非单词字符,但a-zA-z0-9_

除外
    String s="harsh=2, vyas=5; vyas=5";
    String s2 ="jayesh =10 vyas=13 harshit=10;";
    String regex="\\s*=\\d+\\W*";
    String[] ss=s.split(regex);
    String[] ss2=s2.split(regex);
    System.out.println(Arrays.toString(ss));
    System.out.println(Arrays.toString(ss2));

输出

[harsh, vyas, vyas]
[jayesh, vyas, harshit]

注意:虽然,Arrays.toString数组中没有空格,ss功能添加ss2以进行格式化后的空格元件。

Hashset使用

    Set<String> mySet = new HashSet<String>(Arrays.asList(ss));

答案 1 :(得分:0)

你可以使用replaceAll()来获得预期的结果

String stringToSearch = "jayesh =10 vyas =13 harshit=10;";  

stringToSearch = stringToSearch.replaceAll("=\\d+;?","");

System.out.println(stringToSearch);   

output:
jayesh  vyas  harshit