如何确定字符串中的最大值编号?

时间:2013-05-20 13:05:05

标签: java string return-value

考虑以下字符串:

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位。

7 个答案:

答案 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.splitList,但要实施您自己的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));