如何在Java中拆分特定字符串
我试图创建一个程序,将给定的字符串拆分为多个部分,然后如果它有两个或更多连续的大写字母,则将其全部转换为小写。在分割字符串之后,它将去掉所有非字母字符,将其全部转换为小写,然后将非字母字符放回。我有将其全部转换为小写的逻辑,但它并没有按照我想要的方式拆分字符串。目前,我正在努力使其:如何在Java中拆分特定字符串,java,regex,string,split,Java,Regex,String,Split,我试图创建一个程序,将给定的字符串拆分为多个部分,然后如果它有两个或更多连续的大写字母,则将其全部转换为小写。在分割字符串之后,它将去掉所有非字母字符,将其全部转换为小写,然后将非字母字符放回。我有将其全部转换为小写的逻辑,但它并没有按照我想要的方式拆分字符串。目前,我正在努力使其: 在有两个或两个以上连续大写字母的地方拆分字符串,然后使其全部为小写(这是一个测试) 在有“!”、“?”或“.”的位置拆分字符串(此.is!a?测试) 在有空格的地方拆分字符串(这是一个测试) 我现在要做的事情如
- 在有两个或两个以上连续大写字母的地方拆分字符串,然后使其全部为小写(这是一个测试)
- 在有“!”、“?”或“.”的位置拆分字符串(此.is!a?测试)
- 在有空格的地方拆分字符串(这是一个测试)
- 这是一个测试
- 这是!。测试
- 这是一个测试
String[] message = chat.split("regex|regex|regex");
所以我假设它最终会是这样的:
String[] message = chat.split("[A-Z]{2}|[.!?]|[\s]");
使用测试:在进行任何其他讨论之前,您是否确定
拆分(“[A-Z]{2}”)
符合您的预期?它真正做的是使用任意两组大写字母作为分隔符。例如,对于以下字符串:我喜欢在洛杉矶吃比萨饼。而在底特律喝葡萄酒
,则分为:I
,ke吃披萨
和。在底特律喝葡萄酒
。为了更清楚,请编辑您的帖子,添加预期的结果,例如字符串。对不起,我忘了提到这一部分。上述代码行的目的是简单地检查这些条件是否满足。然后它会将所有内容转换为小写字符串,所以您的示例是我喜欢在洛杉矶吃比萨饼。在底特律喝葡萄酒。
好的,但要注意,分隔符不会包含在任何分割中。@user3672163:检查我的回答,事实上,避开了点。它是正则表达式中的一个特殊字符。