Методы String.substring()
не проверяют содержимое подстроки, поэтому то, что вы описываете, вероятно, является ошибкой в вашем коде. Вы можете опубликовать минимальный объем кода, необходимый для воспроизведения проблемы, если вам нужна помощь по устранению неполадок.
Учитывая код и информация дается в обновлении и комментарии, это то, что я бы ожидать:
String actnum = "03KL352"; /* Maybe actnum is actually entered via a JSP. */
System.out.println(actnum); /* Prints 03KL352 */
String ccode = actnum.substring(1,2); /* Assign characters [1,2) to ccode. */
System.out.println(ccode); /* Prints 3 */
Помните, что индексы строк в Java с нуля. Первый символ имеет индекс 0, следующий в индексе 1. Кроме того, метод substring
принимает два символьных индекса; первая - включена в новой подстроке, вторая - не — - это индекс символа после последнего символа в новой подстроке. Таким образом, длина новой подстроки равна end - start
.
Отправьте свой код. Без этого все угадывают, что вы можете делать неправильно. (Это сомнительно, что это ошибка в подстроке Java, потому что другие наверняка сообщили об этом до сих пор.) –
Это ascii zero или 0x00? –
Я не уверен, как я могу сказать разницу? Actnum (который может содержать буквы) может быть чем-то вроде 03KL352 и вводится в JSP. – tacotime