明天就要交作业了,有段代码还是弄不明白。。大侠帮帮忙。。。^o^。。。

来源:百度知道 编辑:UC知道 时间:2024/06/19 20:29:34
letterList 是一个ArrayList,包含本页所有的字母,每个单个字母都是一个对象,各带一个int底坐标作为定语。
lineList 是一个列表,包含本页所有的行对象,每个行对象都有一个底坐标,本质是一个ArrayList,包含对象是字母对象。
程序运行前linList包含了本页所有的行和底坐标,但是行的内容是空的,现在要做的是:

把letterList里的所有字符对象分配到相符的行里,所谓相符就是字符的底坐标和行的底坐标相差小于15。
for(int i = 0; i < lineList.size(); i++) {
int lineBase = ((Zeile)lineList.get(i)).getBase();
for(int m = 0; m < letterList.size(); m++) {
int letterBase = ((TextElement)letterList.get(m)).getBase();
int abstand = lineBase - letterBase; // 字母底坐标和行底坐标的距离
if ( abstand > -10 && abstand < 10 )
((Zeile)lineList.get(i)).addLetter((TextElement)(letterList.get(m))); //字母对象被添加到该行中
}
}
其实偶也觉得这个功能也挺简单的,不只为什么,每次执行完以后的结果却是,每行都包含letterList里所有的字母,而且每行都是一样的,这是为什么呢??希望好心人帮忙 。。。^o^。。。

if ( abstand > -10 && abstand < 10 )
((Zeile)lineList.get(i)).addLetter((TextElement)(letterList.get(m))); //字母对象被添加到该行中
}else break;

看看。

你敢把你全部代码贴上来让我跑跑不?