例如假设我有以下 String
String S = "5,a\n" +
"6,b\n" +
"9,a";
格式始终相同 - 一位数字,然后是逗号,然后是一个字符,最后是行结束符。
为了循环我使用的字符串中的每一行
for(String a : S.split("\\n")){}
我想学习按字符分组时数量最多的字符。对于Instance,只有一个“b”,所以值为6;而“a”有两行,所以它的值为 5 + 9 = 14。由于这里 14 是最大值,所以我想找出“a”和 14 并将它们保存在变量中。
最佳答案
您可以执行以下操作:
public static void main (String[] args) throws java.lang.Exception
{
String S = "5,a\n" +
"6,b\n" +
"9,a";
String[] lines = S.split("\\n");
Map<String, Integer> map = new HashMap<String, Integer>();
for( String t : lines )
{
String[] e = t.split(",");
Integer digit = Integer.parseInt(e[0]);
String c = e[1];
if ( map.get(c) != null )
{
Integer val = map.get(c);
val += digit;
map.put( c, val );
}
else
{
map.put( c, digit );
}
}
int max = 0;
String maxKey = null;
for ( String k : map.keySet() )
{
if ( map.get(k) > max )
{
max = map.get(k);
maxKey = k;
}
}
System.out.println("The maximum key is : " + maxKey );
System.out.println("The maximum value is : " + max );
}
输出是:
The maximum key is : a
The maximum value is : 14
关于java - 在 Java 中处理数组(两列),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37402787/