Java:获取变量的最大值

时间:2014-12-06 23:11:44

标签: java max

我试图找到已计算出的这三个变量(aCounter,bCounter,cCounter)的最大值。 Java不喜欢我如何将它们放入字符串中。 先谢谢你们!

   double aCounter=0;
   double bCounter=0;
   double cCounter=0;

         { code to count occurrences of each character in text file }

   String lines = aCounter + bCounter + cCounter;
    String [] array = lines.split (" "); //splits with a space
    int largestInt = Integer.MIN_VALUE;
    for (String numberString : array )
    {
        int number = Integer.parseInt(numberString);
        if (number > largestInt)
        {
            largestInt = number;
        }
    }
bw.write ( largestInt );

3 个答案:

答案 0 :(得分:3)

你在做什么很奇怪:

  • 将三个数字连接成一个字符串
  • 拆分字符串
  • 从分割结果中解析数字
  • 找到最大....

您可以直接从数字中找到最大值:

int largestInt = Math.max(aCounter, Math.max(bCounter, cCounter));

或者如果您不想使用Math.max,那么:

double largestOfAB = aCounter > bCounter ? aCounter : bCounter;
int largestInt = largestOfAB > cCounter ? largestOfAB : cCounter;

或者如果你想要一个循环解决方案:

double largest = aCounter;
for (double number : new double[]{ bCounter, cCounter})
{
    if (number > largestInt)
    {
        largest = number;
    }
}
int largestInt = (int) double;

顺便问一下,为什么aCounterbCountercCounter类型为double? 字母数表示整数。 除非它的平均数。但是,如果它的平均值是多少,那么为什么你最后想要intlargestInt呢? 由于largestInt的类型为int,因此使用int代替计数器是有意义的。

答案 1 :(得分:0)

String lines = aCounter +" "+ bCounter +" "+ cCounter;

答案 2 :(得分:0)

你应该替换

String lines = aCounter + bCounter + cCounter;

String lines = aCounter + " " + bCounter + " " + cCounter;

如果你真的想用这种方式,否则

int largest=0;
if(aCounter>bCounter) {
 if(aCounter>cCounter) {
  largest=aCounter;
 } else {
  largest=cCounter;
 }
} else {
 if(bCounter>cCounter) {
  largest=bCounter;
 } else {
  largest=cCounter;
 }
}

int largest=Integer.MIN_VALUE;
if(aCounter>largest) largest=aCounter;
if(bCounter>largest) largest=bCounter;
if(cCounter>largest) largest=cCounter;

将是一种更好的方式,不会使用字符串。