尝试拆分输入,如下面的示例所述
它适用于,例如:
"Data Structures=Coding,Sports=Football,Capital=Delhi";
但不是为了:
"Data Structures=Cod=ing,Sports=Football,Capital=Delhi";
我想忽略第二个 =
在“编码”这个词以及它之后的所有内容中,我们如何才能做到这一点?我们能用正则表达式吗?Guava切碎机限值?
public static void main(String[] args)
{
// This String contains key-value pairs.
String value
= "Data Structures=Coding,Sports=Football,Capital=Delhi";
Map<String, String>
mp
= Splitter.on(',')
.withKeyValueSeparator('=')
.split(value);
3条答案
按热度按时间eoigrqb61#
有很多方法可以实现你想要的。一个简单的方法是使用
String#substring
获取键所需的子字符串和所需的Map
.输出:
如果你想消除第二个
=
,您可以将其替换为""
如下图所示:输出:
68bkxrlz2#
问题:
我想忽略单词coding中的第二个“=”以及后面的所有内容
消除第二个
=
之后,请使用:测试
输出
评论如下:
我想把数据放在第二个“=”之后,然后去掉第二个“=”
使用java 9+可以这样做:
输出
nxowjjhe3#
我不知道Guava,但知道标准 java
split()
方法具有第二个参数(通常受监督),该参数限制结果大小或更好,即搜索分隔符的频率:要忽略除第一个等号以外的所有等号,即从值部分删除所有等号,只需添加替换,如:
如果任何条目(逗号之间的字符串)没有等号,这将引发异常。要避免这种情况,请向流中添加筛选器: