为什么这段代码会产生意外的输出?

发布于 2024-08-13 06:06:26 字数 668 浏览 4 评论 0原文

我有一张桌子。在第一栏中。我有学生的名字,例如“Esfandyar Talebi”和“Arash Nouri”;行数可以更改。 4 行只填充了 2 行。

我写的代码:

List<String> professorsName = new ArrayList<String>();
for(int i = 0; i < InformationTable.getRowCount(); i++) {
    professorsName.add((String) InformationTable.getValueAt(i, 0));
    System.out.println(professorsName.toString());
}

但这是输出:

[埃斯凡迪亚·塔勒比]

[埃斯凡迪亚·塔勒比、阿拉什·努里]

[Esfandyar Talebi、Arash Nouri、null]

[Esfandyar Talebi、Arash Nouri、null、null]

[Esfandyar Talebi、Arash Nouri、null、null、null]

[Esfandyar Talebi、Arash Nouri、null、null、null、null]

I have a table. In the first column. I have students' names, such as "Esfandyar Talebi" and "Arash Nouri"; the number of rows can be changed.
Just 2 rows are filled from 4 rows.

The code that I have written:

List<String> professorsName = new ArrayList<String>();
for(int i = 0; i < InformationTable.getRowCount(); i++) {
    professorsName.add((String) InformationTable.getValueAt(i, 0));
    System.out.println(professorsName.toString());
}

But this is the output:

[Esfandyar Talebi]

[Esfandyar Talebi, Arash Nouri]

[Esfandyar Talebi, Arash Nouri, null]

[Esfandyar Talebi, Arash Nouri, null, null]

[Esfandyar Talebi, Arash Nouri, null, null, null]

[Esfandyar Talebi, Arash Nouri, null, null, null, null]

null

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

平安喜乐 2024-08-20 06:06:26

显然,对于 i 的某些值,您的 InformationTable.getValueAt(i, 0) 返回 null 。你必须查看你的 TableModel

Apparently your InformationTable.getValueAt(i, 0) returns null for certain values of i. You'll have to look at your TableModel

何止钟意 2024-08-20 06:06:26

您发布的循环没有什么奇怪的...它运行的次数与 InformationTable.getRowCount() 方法返回的值一样多,这似乎是六次。因此问题可能出在 InformationTable 类上,如果您需要进一步的帮助,您可能需要将其发布。

There is nothing strange with the loop you posted... It runs as many times as the value InformationTable.getRowCount() method returns, which appears to be six. So the problem is likely on the InformationTable class, you may need to post it if you need further help.

眼泪也成诗 2024-08-20 06:06:26

InformationTable 中可能有 6 行。您可能首先必须检查单元格是否已填充名称:

List<String> professorsNames = new ArrayList<String>();
for(int i = 0; i < InformationTable.getRowCount(); i++) {
    String name = (String) InformationTable.getValueAt(i, 0);
    if (name != null && name.trim().length() != 0) {
        professorsNames.add(name);
        System.out.println("Adding: " + name);
    } else {
        System.out.println("Refusing: " + name);
    }
}

System.out.println("Found: " + professorsNames.toString());

There are probably 6 rows in the InformationTable. You probably first have to check wether the cell has been filled with a name:

List<String> professorsNames = new ArrayList<String>();
for(int i = 0; i < InformationTable.getRowCount(); i++) {
    String name = (String) InformationTable.getValueAt(i, 0);
    if (name != null && name.trim().length() != 0) {
        professorsNames.add(name);
        System.out.println("Adding: " + name);
    } else {
        System.out.println("Refusing: " + name);
    }
}

System.out.println("Found: " + professorsNames.toString());
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文