已关闭。此问题需要details or clarity。当前不接受答案。
**想要改进此问题?**添加详细信息并通过editing this post阐明问题。
昨天关门了。
Improve this question
我有一个字符串charAndValue =“[文档类型:一份,本书,文档格式:A4]”
我尝试在代码中拆分,但得到了list中的第二个瓦尔,如
String charAndValue = "[Type of document : A copy, the book, Document format : A4]"
List<String> listVal = new ArrayList<>(Arrays.asList(charAndValue.split(", [A-Z]")));
拆分后,我得到了两个大小的列表:
1.“文件类型:一本,这本书”
1.“文档格式:A4英寸
问题是我的拆分不能正常工作。我的代码工作错误。从第二个键中删除大写字母。是的,我在代码中写了它,但我需要另一个选项
2条答案
按热度按时间lndjwyie1#
假设您有以下String:
你要把它分成:
您正在申请:
返回的原因:
是因为第二个字符串中的大写字母P,是你拆分的正则表达式的一部分.
相反,尝试将原始字符串更改为:
并适用于:
这不会"移除"大写P,因为它不再是你拆分的部分。
编辑:
这是假设你不能改变要拆分的符号,你可以用更少的代码行很容易地做到这一点,但是我把它拆分出来显示每一步。
在这一点上,我看到两个可能的问题:
1.输入字符串:
"试验:a,形式:A,宿舍:B "
这会导致
这意味着您需要在此过程中操作"原始"值(或其临时副本)。
其次:
如果目标是将其拆分为:
第一行会引起麻烦的原因应该是显而易见的。它不仅会被视为一个分裂,而且是一个空白,怀疑你会找到B
4xrmg8kj2#
我猜你想达到的目标是:
这将导致字符串数组:
一步一步:
.replaceAll("[\\[\\]]", "")
-它修剪[
和]
。注意,必须使用双反斜杠\\
,因为这些字符在regex中是特殊字符.replaceAll("(.*)([,])(.*)", "$1#$3")
-在(captured group)
中捕获组,稍后使用$numberOfGroup
将其添加到替换结果中。还添加了分隔符#
.split("#")
-使用上一步中提供的分隔符拆分已处理的字符串