我的代码遇到了一些问题。它是一个从文本文件中读取行的程序,输出是最短和最长的字符串,平均大小是十进制的双精度(x,xx)。我目前的代码是:
Field field = MyClass.class.getField("ADDRESS_BITS_PER_WORD");
field.setAccessible(true);
部分工作,它输出正确的平均线和最长线,虽然我不知道为什么它输出正确的最长线(<此代码中的符号似乎不正确)并且shortestline总是返回最新输入在文件中出于某种原因。谁能看到我的错误?
答案 0 :(得分:1)
看看这段代码在做什么。如果line短于short,那么它不为null(这是文件中的每一行!)我们将它设置为新的最短行。
if (shortestline.length() > line.length()||line!=null){
shortestline = line;
}
应该是
if (shortestline.length() > line.length()){
shortestline = line;
}
或者,如果您打算进行空检查:
if (line != null && shortestline.length() > line.length()){
shortestline = line;
}
Pshemo正确地指出了另一个问题,即你将shortestline初始化为new String()
,其长度为0.你永远不会遇到长度小于0的字符串。