devfoot Ответов: 1

Извлеките пустое слово между запятыми в текстовом файле


привет,

Я пытался получить запись, которая содержит нулевое слово между запятой из текстового файла и печатью в файл журнала

например :

Париж, Америка, Испания, Япония
Индия,Шриланка,Пакистан,Бангладеш

Я получу выходные данные в журнале: Париж, Америка ,Испания, потому что получение null между запятыми ниже-это мой код .

из кода я не понимаю, почему массив не обнаруживает нулевое событие, хотя я разделился с (,).
пожалуйста, помогите мне .

Что я уже пробовал:

while((s = sr.readLine())!= null){
PrintStream p = новый PrintStream(Log_file);
Строка a[]= s.split(",");
// Системы.из.код println(с);
//System.out.println(a[5]);
для(строка k:a)
{
если(k !=null)
{
//Системы.из.код println(а[я]);
if(a[i] ==null){
п. код println(с);

1 Ответов

Рейтинг:
10

Thomas Daniels

Этого не будет. null значения в a Если между двумя запятыми ничего нет, то результат в a будет пустой строкой, а не null. Вместо того чтобы проверять наличие null, проверьте, является ли строка пустой, с помощью k.isEmpty().


devfoot

спасибо , что он работает,но у меня есть еще одна ситуация здесь, в Париже, в Америке
в этом случае ,если Америка отсутствует, то функция разделения не принимает последнее слово, есть идеи ?

Thomas Daniels

Я не совсем понимаю, что ты имеешь в виду.

devfoot

если первое слово и последнее пусты, то мой код терпит неудачу
пример: Париж,Америка,
до Парижа после Америки слово пусто, тогда как я могу это уловить, я проводил регрессионное тестирование и применял тестовый случай, так что мой код здесь терпит неудачу .

Thomas Daniels

Ну, а что произойдет, так это то, что первый и последний элементы в массиве будут пустыми строками. Зная это, вы можете настроить свой код, чтобы устранить проблему. Я не знаю, что вы пытаетесь сделать, каковы ожидаемые результаты и каковы фактические результаты, но вы это знаете, поэтому вы можете использовать отладчик, чтобы выяснить, что идет не так.

devfoot

извините за поздний ответ : мой вопрос таков : если Париж,Лондон,Япония будут записаны .
тогда мой код не воспринимает это как пустую запись .
код проверяет только между , и , .
его не берут, если сама первая буква пуста .

Thomas Daniels

Я действительно понятия не имею, что ты имеешь в виду. Пожалуйста, вместо того, чтобы спрашивать меня, используйте свой отладчик, чтобы пройти через ваш код и выяснить, что не так.