我有一个只包含一列的JTable,名为“Points”Points
我有另一个包含七列的JTable,名为“Lines”Lines
我写了一个按钮处理程序,删除点中的每一个点(行),这是没有发现线,因为它是不利用。
我提取的内容点一点(行)一次.我提取线的全部内容理想的是在一个字符串数组.不幸的是,我使用的方法与线输出一个向量.我无法找到一种方法来转换从向量到字符串数组或类似的数据类型.我的目标是搜索线从点的单点,而不使用嵌套循环.我尝试了以下指令,但他们不工作.大概是因为方法“contains()”在搜索Vector时不起作用。我非常感谢一些建议。提前谢谢你。
我尝试了以下方法:
btnDeleteUnused.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
Vector<Vector> data = linesTableModel.getDataVector();
for(int k = pointsTableModel.getRowCount() - 1; k >= 0; k--)
{
String pn = (String) pointsTableModel.getValueAt(k, 0); // Fetch Point Name at (k_th row, column 0)
System.out.println("Current Point: "+ pn);
System.out.println(data.contains(pn));
}
// TO BE DEVELOPED
}
});
字符串
1条答案
按热度按时间ggazkfy81#
在
data
对象上使用contains
时确实会出现问题。这是因为您可能试图搜索String
,但data
的每个元素都 * 不是 *String
。每个元素都是另一个Vector
。data
变量实际上是一个二维矢量。要访问单个元素,您需要使用两个索引。2请参阅API中的范例。因此,要搜索特定的
String
,需要使用嵌套循环逐个元素地搜索,或者在循环中使用contains
。以下方法可用于查找目标字符串的第一个匹配项的位置:
字符串
您的程式码已经
System.out.println(data.contains(pn));
的值。“您可以使用上面的方法,将该行更改为
System.out.println(indexOf (data, pn) != -1);
个当您开发更多的程式码时,您可以像这样存取特定的项目:
型