如何在Java中拆分特定的字符串

时间:2014-05-24 17:33:53

标签: java regex string split

我正在尝试创建一个将给定字符串拆分成多个部分的程序,如果它有两个或多个连续的大写字母,则将全部转换为小写。拆分字符串后,它将删除任何非字母字符,将其全部转换为小写,然后将非字母字符重新放入。我有逻辑将其全部转换为小写,但它不会拆分我想要的字符串。目前,我正试图这样做:

  • 拆分有两个或多个连续大写字母的字符串,然后全部小写(THIS_IS_A_TEST)
  • 将字符串拆分为“!”,“?”或“。” (THIS.IS!?A TEST)
  • 拆分有空格的字符串(这是测试)

我目前在这里是我要做的所有事情:http://pastebin.com/ppBykvY4

“[A-Z] {2}”是两个连续的首都,但我不知道如何包括其余的。 {Punc}只有在我可以排除除“!”,“?”,“。”之外的所有内容时才有效。

另外,我正在使用BukkitAPI。

实施例: 如果用户输入了上述所有示例(在项目符号中),则应为:

  • this_is_a_test
  • this.is!.A?测试
  • 这是一个测试

1 个答案:

答案 0 :(得分:2)

如果您需要多个分隔符,请使用|

String[] message = chat.split("regex|regex|regex");

所以我认为它最终会是这样的:

String[] message = chat.split("[A-Z]{2}|[.!?]|[\s]");

enter image description here

使用以下方式进行测试: http://www.regexplanet.com/advanced/java/index.html