我创建了一个表格和一些按钮来删除/添加行。 问题是,当我添加新行时,我必须在字段名称中插入一个该表中尚不存在的值。让我解释一下。
这是默认表:
现在假设我删除了 Station 3:
如果我添加一个新站,我想添加一个新站名称 Station 3(列表中缺少该站),但我要添加一个新站 5(显然,因为我的代码不正确)。
我的“添加按钮”操作事件的代码如下:
private void jButton10ActionPerformed(java.awt.event.ActionEvent evt) {
DefaultTableModel model = (DefaultTableModel)jTable1.getModel();
String s2 = "";
String s1 = "Station 1 Station 2 Station 3 Station 4 Station 5";
int tb1rows = jTable1.getRowCount();
if (tb1rows == 5) {
// ERROR - MAXIMUM STATION NUMBER
}
else {
for (int i=0; i<tb1rows;i++) {
s2.concat(jTable1.getValueAt(i,1).toString());
s2.concat(" ");
}
String[] s3=s2.split(" ");
for (int i=0;i<s3.length;i++) {
if (s1.contains(s3[i])) {
System.err.println("contains");
System.out.println(s3[i]);
}
}
model.insertRow(jTable1.getRowCount(),new Object[] {jTable1.getRowCount() + 1,"Station " + (jTable1.getRowCount()+1),10,false,0,Color.BLACK});
}
}
我的逻辑有什么问题吗?有没有更好的方法来处理该问题,以便我可以获得该列中缺少的“Station x”,以便我可以重新添加它?
预先感谢您的回答。
最佳答案
由于“Station 1”中有一个空格,因此不能分割空格。最好使用Set<String> values = new HashSet<String>()
,而不是使用另一个分隔符,如“;”。 .
关于java - 如何比较字符串以获取缺失的单词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11586369/