在java中基于大写分割

bha*_*thi 4 java uppercase

任何人都知道该怎么做如何隐蔽FirstNameFirst Name.

分裂必须采取基础上发生的大写字母,但应排除的第一个字母.

我知道如何使用split进行操作.除了拆分功能之外,还有其他任何方法可以做到这一点.

nha*_*tdh 5

不是split,只是replaceAll:

str.replaceAll("(?!^)([A-Z])", " $1")
Run Code Online (Sandbox Code Playgroud)

此解决方案假定您不希望在大写英文字母之前添加空格(如果它是字符串中的第一个字符).所以," FirstName"将成为"  First Name"(注意2个空格).

(?!^)是负面预测(?!pattern),只是检查这不是字符串的开头^.我捕获(pattern)大写的英文字母,并在替换中使用捕获的文本$1($1意味着捕获组1中捕获的任何内容都放在替换字符串中 - 在这种情况下,只有1个捕获组).

另一种在大写英文字母之前添加空格的解决方案,只有前面是小写英文字母:

str.replaceAll("(?<=[a-z])([A-Z])", " $1")
Run Code Online (Sandbox Code Playgroud)

(?<=[a-z])是一个积极的后视(?<=pattern),检查[A-Z]大写字母是否以小写英文字母开头[a-z].其余部分已在上面解释过.

根据要求,模式可能会有很大差异.你只举一个例子而不是具体的要求,所以我会猜测并为你挑选一个模式.