【发布时间】:2015-01-23 20:11:51
【问题描述】:
我正在尝试比较通过读取文件创建的列表的元素。
列表大小从 3 到 10 个元素不等。我想检查列表中的元素,比较它们的长度(我尝试通过String = s.length() 这样做)它有效,我得到了列表中每个元素的长度。
如何比较每个元素的长度?我想选择长度上最接近的 2 个元素并确定它们的索引。
例如,如果这是输入文件:
ATGTCATGG
ATGCGATGGGGGTCGCCC
ATGTTT
最近的 2 个字符串长度相差 3,它们的索引是 0 和 2。
public class ListTesting {
public static void main(String[] args) throws IOException {
PrintStream output = new PrintStream(System.out);
Scanner input = new Scanner(System.in);
output.print("Enter the name of the file ");
String fileName = input.nextLine();
Scanner fileInput = new Scanner(new File(fileName));
List<String> listo = new ArrayList<String>();
String token = "";
while ( fileInput.hasNext() ) {
token = fileInput.next();
listo.add(token);
}
fileInput.close();
for ( int i =0; i < listo.size(); i++) {
String components = listo.get(i);
int lengtho = components.length();
//output.println(lengtho);
}
}
}
【问题讨论】:
-
对不起,我第一次阅读时误解了你的问题:)
-
如果您的实际目标是获得最接近的匹配字符串,您最好比较每对字符串的 Levenshtein 编辑距离。见en.wikipedia.org/wiki/Levenshtein_distance。
标签: java string list if-statement linked-list