考虑以下字符串:
String test= "0, 1, 3, 2, 2, 1, 1, 4, 2, 5, 1, 1, 0, 1, 241";
最大值是最后一个值241
。如何在字符串中获取此数字的计数15
,因为241是字符串中的第15个数字,并且是行中的最大数字?
第二个例子:
String test= "0, 1, 3, 2, 2, 1, 1, 4, 30, 5, 1, 1, 0, 1, 5";
结果应为9,因为30是最大数字,而在字符串中排在第9位。
答案 0 :(得分:5)
将字符串与String.split(",");
分开,它将返回一个数组。寻找该数组内的最大值
答案 1 :(得分:5)
在以下示例中,maxIndex
变量将包含数组中最高值的索引,实际位置将为maxIndex + 1
,这正是您要查找的内容。
String test = "0, 1, 3, 2, 2, 1, 1, 4, 2, 5, 1, 1, 0, 1, 241";
String[] testArray = test.split(", ");
int max = Integer.MIN_VALUE, maxIndex = 0;
for (int i = 0; i < testArray.length; i++) {
if (Integer.parseInt(testArray[i]) > max) {
max = Integer.parseInt(testArray[i]);
maxIndex = i;
}
}
编辑:初始化其他变量,并通过评论更正了一些代码
答案 2 :(得分:0)
您应该将此字符串与,
分开,然后找到数组中最大的字符串。您将获得可用于在给定字符串中查找的最大数字字符串。
答案 3 :(得分:0)
尝试将你的字符串拆分成这样的数组,然后找到该数组中最大的数字位置
String[] YourArray=this.split(",");
int largest = YourArray[0];
int largestpos;
for(i = 0; i < YourArray.length; i++){
if(Integer.parseint(YourArray[i]) > largest){
largest = YourArray[i];
largestpos=i;// This is what you need
}
}
答案 4 :(得分:0)
1)拆分字符串并将其放入数组(int类型) 2)然后您可以使用JAVA API提供的任何类型的排序。 3)您将找到所需的输出。
答案 5 :(得分:0)
快速而丑陋:
String initialString = "0, 1, 3, 2, 2, 1, 1, 4, 2, 5, 1, 1, 0, 1, 241";
String[] sArray = initialString.split(", ");
List<Integer> iList = new ArrayList<Integer>();
for (String s: sArray) {
iList.add(Integer.parseInt(s));
}
Collections.sort(iList);
// finding last item's value
System.out.println(iList.get(iList.size() - 1));
// now finding index
System.out.println(iList.indexOf(Integer.parseInt("241")));
输出:
241
14
第二个输出为您提供解析后的最大整数的索引。
注意:为简单起见,请勿在此处检查NumberFormatException
。
更好的解决方案:
仍然使用String.split
和List
,但要实施您自己的Comparator
。
答案 6 :(得分:0)
int max = Integer.MIN_VALUE, pos=0, i=0;
for (String s : test.split(",")) {
if (Integer.parseInt(s) > max) { max = Integer.parseInt(s); pos = i; }
++i;
}
System.out.println("Position of max value is: " + (pos+1));