Я читаю файл построчно в жало и разбить его на более мелкие строки с помощью line.indexOf('"', 1)
и substring()
, но этот способ не обнаруживает ли, прежде чем "
является \
или нет, чтобы он не реагировать на побег. как я могу это решить?маскирующего использование IndexOf()
(я не могу просто использовать line.split('"')
Couse "
оба на начало и конец подстроки, ни расколоть другим полукокса, потому что моя задача не позволяет так.)
весь сегмент чтение:
while ((line = bufferedReader.readLine()) != null) {
System.out.println(line);
while(line.length()>0){
if(line.charAt(0) == ',' || line.charAt(0) == ' '){
line = line.substring(1);
}
else{
if(line.indexOf(',') != -1){
if (line.charAt(0) == '"'){
pabaiga = line.indexOf("\"", 1);
zodis = line.substring(0, pabaiga+1);
line = line.substring(pabaiga+1);
duomenys.add(zodis);
}
else{
pabaiga = line.indexOf(',');
zodis = line.substring(0, pabaiga);
line = line.substring(pabaiga);
duomenys.add(zodis);
}
}
else{
zodis = line;
line = line.substring(line.length());
duomenys.add(zodis);
}
}
for(String elem : duomenys){
System.out.println(elem);
}
duomenys.removeAll(duomenys);
}
Мне не разрешалось разделять только разделителем, так как в середине строки может быть один, используя \, в текстовом файле не вариант. Поэтому мне было предложено определить один элемент sting как «текст», но если он содержит другое «или» в середине, мой текущий код не работает.
если моя строка из текстового файла "start \"title\" end", 10, 20, "text"
массив жала должен содержать
- [0]
"start "title" end"
- [1]
10
- [2]
20
- [3]
"text"
Просьба привести пример ввода. Я предполагаю, что вы можете «разбить», поскольку он требует регулярное выражение. –
Используйте регулярное выражение для решения вашей проблемы. Вы можете определить отрицательное выражение регулярного выражения tha t соответствует только тогда, когда предыдущий символ не является обратным слэшем (\) – sjkm
Пожалуйста, [[edit]] ваш вопрос с несколькими примерами ввода и ожидаемого вывода, потому что теперь ваш вопрос не совсем ясен о том, чего вы пытаетесь достичь. – Pshemo