我写了这个方法来找到一个字符串中的令牌长度。我很难从这个师(两个双打)中获得决定。
public static double averageTokenLength (Scanner s)
{
String word="";
int words = 0;
int length = 0;
double average = 0;
while (s.hasNext())
{
word = s.next();
words++;
length = length + word.length();
average = (length/ words);
}
return average;
教授给出的测试方法表明"预期; 3.66666666666667,但是3.0。如何让我的代码显示结果?
答案 0 :(得分:1)
尝试:
length * 1.0 / words
否则它会进行整数之间的除法,例如7/3会给出2,余数为1。
答案 1 :(得分:1)
其他答案的替代方法是对其中一个参数进行显式转换,如下所示:
(double)length/words;
这是一些额外的字符,但它更清楚你正在做什么,如果你或其他人稍后查看代码,这可能会有用。
答案 2 :(得分:0)
您应该使用length*1.0/words
代替