Я использую этот метод в этой строке:ошибка времени выполнения в .split («|»)
f.getCmbAttori().getSelectedItem().toString().split("|")
с входом, как «13 | Il синьор делием Анелли» и InstEd возврата:
f.getCmbAttori().getSelectedItem().toString().split("|")[0] = "13"
f.getCmbAttori().getSelectedItem().toString().split("|")[1] = "Il Signore degli Anelli"
Он возвращает массив, где каждый персонаж один, как это:
f.getCmbAttori().getSelectedItem().toString().split("|")[0] = ""
f.getCmbAttori().getSelectedItem().toString().split("|")[1] = "1"
f.getCmbAttori().getSelectedItem().toString().split("|")[2] = "3"
f.getCmbAttori().getSelectedItem().toString().split("|")[3] = "|"
f.getCmbAttori().getSelectedItem().toString().split("|")[4] = "I"
f.getCmbAttori().getSelectedItem().toString().split("|")[5] = "l"
[...]
f.getCmbAttori().getSelectedItem().toString().split("|")[25] = "l"
f.getCmbAttori().getSelectedItem().toString().split("|")[26] = "i"
Как может быть возможно, что? Я обманываю этот метод неправильно? Вот кусок кода, где я использую это:
PreparedStatement stmSql = null;
int risultato = 0;
stmSql = f.conn.prepareStatement("insert into recita (CodAttore, CodFilm) values (?, ?)");
stmSql.setInt(1, Integer.parseInt(f.getCmbAttori().getSelectedItem().toString().split("|")[1]));
stmSql.setInt(2, Integer.parseInt(f.getCmbFilmRecita().getSelectedItem().toString().split("|")[1]));
risultato = stmSql.executeUpdate();
Используйте 'раскол ("\\ |")'. –
'' | "' является специальным регулярным выражением. Если вы действительно хотите разделить на '' | '' 'use' .split (" \\ | ");' –