如何按特定关键字拆分字符串?

时间:2014-10-13 06:35:00

标签: java string

我有一个字符串

String value ="Caused by:null pointer exception Caused by
                             : BeanCreationException.. WARNING: its just a warning..";

我想在关键字&#34之后拆分String;引起:"和"警告:"所以我输出像

  • 空指针异常
  • BeanCreationException ..
  • 只是一个警告..

非常感谢任何帮助。

6 个答案:

答案 0 :(得分:3)

您可以使用Caused by:WARNING:作为分隔符

<强>代码

String value ="Caused by:null pointer exception Caused by"
        + ": BeanCreationException.. WARNING: its just a warning..";
String[] sp = value.split("Caused by:|WARNING:");
Stream.of(sp).forEach(s -> System.out.println(s));

<强>输出

 null pointer exception 
 BeanCreationException.. 
 its just a warning..

注意:代码的某些部分位于 Java 8

答案 1 :(得分:1)

尝试使用split()方法

String str="Caused by:null pointer exception Caused by: BeanCreationException.. WARNING: its just a warning..";

String split[]=str.split("Caused by");

split()将返回包含拆分trem之前和之后的单词的数组

答案 2 :(得分:1)

您希望将多个子字符串视为分隔符。所以我的方法是将我的所有分隔符子串转换为公共分隔符,然后用该分隔符将其拆分。

String value ="Caused by:null pointer exception Caused by BeanCreationException.. WARNING: its just a warning..";

//Transforming substrings to a common separator
value = value.replace("Caused by:", "||");
value = value.replace("WARNING:", "||");

//Just splitting the string by separator
String valueArray = value.split("||");

答案 3 :(得分:1)

您可以在#split方法中使用| OR

value.split("Caused by:|WARNING:")

注意:如果StringCaused by:WARNING:开头,它会在数组中为第一个元素设置为空,所以请小心。

答案 4 :(得分:0)

您可以使用String.split(REQUIRED_SEPARATOR)new StringTokenizer(inputString, "REQUIRED_SEPARATOR")

使用StringTokenizer时,您可以使用hasMoreElements()遍历令牌并使用nextToken()来访问令牌。

答案 5 :(得分:0)

尝试使用String.indexOf("Caused by:")查找所有Caused by:然后String.indexOf("WARNING:"),以查找所有警告。