这个请求很简单,但后来却发生了变化 基本上我需要的不仅仅是分割一个字符串,而是保存“符号”,然后才能显示它们
以下是它的工作原理:
输入:
很久以前,有一个遥远的王国
在这个王国里住了一位公主
她自己很幸福
输出:
一次,第1次,第1行第1列
开,1次,第1行 - 第6列
a,3次,第1行第11行,第1行第28列,第2行第23行
...
也应该能够:不考虑它们的空格,\ n和\ f,但是要考虑“,”因此按空格分割不会将“远”和“远”视为不同的符号,就像“,”是它自己的象征
分割方法有什么方法可以考虑多个参数? 更不用说我不确定是否有比for循环更好的方法来计算每个“符号”重复的行和列
答案 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}}。