用符号分割Java中的字符串

时间:2017-03-29 17:13:33

标签: java split

这个请求很简单,但后来却发生了变化 基本上我需要的不仅仅是分割一个字符串,而是保存“符号”,然后才能显示它们

以下是它的工作原理:

输入:

很久以前,有一个遥远的王国

在这个王国里住了一位公主

她自己很幸福

输出:

一次,第1次,第1行第1列

开,1次,第1行 - 第6列

a,3次,第1行第11行,第1行第28列,第2行第23行

...

也应该能够:不考虑它们的空格,\ n和\ f,但是要考虑“,”因此按空格分割不会将“远”和“远”视为不同的符号,就像“,”是它自己的象征

分割方法有什么方法可以考虑多个参数? 更不用说我不确定是否有比for循环更好的方法来计算每个“符号”重复的行和列

1 个答案:

答案 0 :(得分:0)

将字符串拆分为符号,将符号保留为哈希映射中的键,并将其计数保存在相应的哈希映射值中。

示例:

Map<String, Integer> tokensWithCounts = new HashMap<String, Integer>();
String[] tokens = str.split("\\s*[a-zA-Z]+\\s*");
List<String> tokensList = Arrays.asList(tokens);
for(String token : tokenList){
    if(tokensWithCounts.get(token) == null){
        tokensWithCounts.put(token, 0);
    }
    tokensWithCounts.put(token, tokensWithCounts.get(token) + 1);
}
编辑:对不起,我的问题出错了。您将保留HashMap<String, List<String>>中的值。令牌仍然是密钥,List将以&#34;第1行 - 第1列和第34行的形式出现所有令牌。出现次数是存储在HashMap中的.size()的{​​{1}}。