我试图找到已计算出的这三个变量(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 );
答案 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;
顺便问一下,为什么aCounter
,bCounter
和cCounter
类型为double
?
字母数表示整数。
除非它的平均数。但是,如果它的平均值是多少,那么为什么你最后想要int
值largestInt
呢?
由于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;
将是一种更好的方式,不会使用字符串。