我有这样的代码:Java错误串
List<RFeeAtmbVO> list = RFeeAtmbBO.getInstance().listRFeeAtmb(mapParam, null);
if (list != null && list.size() > 0) {
for (RFeeAtmbVO vo : list) {
vo.setIdFeeType(edit_biaya_jenisBiayaId.getValue());
String name = edit_biaya_name.getValue().trim();
if (vo.getName().indexOf("(Gagal Berbayar)") > -1) {
name = name.substring(0, name.indexOf(" (Gagal Berbayar)")) + " (Gagal Berbayar)";
System.out.println("Hasilnya 1: "+name);
} else {
if (name.indexOf("(Gagal Berbayar)") > -1) {
name = name.substring(0, name.indexOf(" (Gagal Berbayar)"));
System.out.println("Hasilnya2 : "+name);
}
}
vo.setName(name);
vo.setSdate(edit_biaya_sdate.getValue());
vo.setEdate(edit_biaya_edate.getValue());
vo.setKodeFee(edit_biaya_kodeFee.getValue());
vo.setMappingCode(edit_biaya_mappingCode.getValue());
RFeeAtmbBO.getInstance().updateRFeeAtmb(vo);
}
}
当我在文本框中添加“(Gagal Berbayar)”中没有报价是没有问题的,并保存在数据库中,但添加一些文字没有“(Gagal Berbayar )”,我得到的错误是这样的:
[err] java.lang.StringIndexOutOfBoundsException: String index out of range: -1
[err] at java.lang.String.substring(String.java:1904)
[err] at controller.fee.fee.EditBiayaController.onClick$edit_biaya_btnSave(EditBiayaController.java:413)
和413线是
name = name.substring(0, name.indexOf(" (Gagal Berbayar)")) + " (Gagal Berbayar)";
什么问题?可以帮助我吗?对不起,迟到的更新代码:)
我认为你只是简单地需要在indexof上使用substracl 1。使用这个:substring(0,name.indexOf(“(Gagal Berbayar)”) - 1) – Csanesz 2014-10-03 08:59:56
请简化您的代码示例并显示一些触发问题的示例输入。有很多我们不需要看到的代码 - 只关注子字符串并展示问题。 – 2014-10-03 09:03:24
哪一行会引发错误? – Tirath 2014-10-03 09:08:07