所以我打电话来自另一个类的方法makeCard(String info)。它在第一次运行时运行正常,但第二次我调用它似乎运行两次的方法,这会创建一个StringIndexOutOfBoundsException运行时错误,我似乎无法弄清楚为什么。我对Java有点新,所以我可能会漏掉一些显而易见的东西,但我头脑中的逻辑表示,如果调用一次,它应该只运行一次。希望有人能指出我的错误。我的方法运行两次,它只被调用一次
这里是方法:
public void makeCard(String info){
cInfo = new StringBuffer(info);
int i = 0;
while(cInfo.charAt(i)== ' '){
cInfo.deleteCharAt(i);
}
while(cInfo.charAt(cInfo.length()-1)== ' '){
cInfo.deleteCharAt(cInfo.length()-1);
i--;
}
seperateValues();
makeObject();
}
和这里是它被称为:
@Override
public void actionPerformed(ActionEvent e) {
MainWindow mw = new MainWindow();
CardBreakdown cb = new CardBreakdown();
if("submit".equals(e.getActionCommand())){
cb.makeCard(cardInfo.getText());
mw.removeAddPanel();
cardInfo.setText("");
}
}
预先感谢您的任何帮助,您可以提供
是这样的错误: 线程“AWT-EventQueue-0”中的异常java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:0
可以发布确切的错误消息吗?在螺纹 – FaddishWorm
异常 “AWT-EventQueue的-0” java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:0 \t在java.lang.StringBuffer.charAt(未知来源) \t在CardBreakdown.makeCard(CardBreakdown.java:24 ) \t在EnterCard.actionPerformed(EnterCard.java:62) \t在javax.swing.AbstractButton.fireActionPerformed(来源不明) \t在javax.swing.AbstractButton中的$ Handler.actionPerformed(来源不明) \t在javax.swing中.DefaultButtonModel.fireActionPerformed(未知源) – mig
我不会使用StringBuffer,永远。我会使用'info.trim()'这将做你想做的。 –