Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для мобильных телефонов > JAVA Micro Edition

JAVA Micro Edition Низкоуровневое программирование мобильных телефонов.

Ответ
 
Опции темы
Старый 29.11.2008, 00:23   #1
Romanzes
Разработчик
 
Аватар для Romanzes
 
Регистрация: 06.04.2008
Сообщений: 541
Написано 196 полезных сообщений
(для 637 пользователей)
Вопрос Парадоксальная строка

У меня есть файл, в котором лежат тексты, разделенные символами ***, примерно вот так:

Текст1
***
Текст2
***
Текст3

Мне нужно считать тексты и поместить их в массив строк. Я делаю это так:
Texts = LoadFile(getClass().getResourceAsStream("/1.dat"),"***");
Где Texts - это массив строк.

Вот функция LoadFile:
public static String[] LoadFile(InputStream is, String parser)
{
 Vector punkts = new Vector();
 String s;
 StringBuffer sb = new StringBuffer();
 do
 {
  s=readline(is);
  if (s.length()==0) break;
  if (s==parser)
  {
   punkts.addElement(sb.toString());
   sb=new StringBuffer();
  }
  else{sb.append(s);}
 }
 while (true);
 try{is.close();}catch(Exception ex1){}
 String[] p=new String[punkts.size()];
 for (int i=0; i<punkts.size(); i++)
 punkts.copyInto(p);
 return p;
}
а вот readline:
public static String readline(InputStream is)
{
 StringBuffer sb = new StringBuffer();
 int c;
 try{
  boolean z=true;
  while (z)
  {
   c=is.read();
   if (c==13 || c==-1)
   {
    z=false;
    is.skip(1);
   }else{sb.append((char)c);}
  }
 }catch(Exception ex){return sb.toString();}
 return sb.toString();
}
Проблема в том, что условие (s==parser) НИКОГДА не выполняется. Однако, в дебаггере видно, что есть моменты, когда s="***" и parser="***", но при этом условие (s==parser) ложно . Похоже, я где-то очень жестко ступил. Что я делаю неправильно?
(Offline)
 
Ответить с цитированием
Старый 29.11.2008, 02:00   #2
Piligrim
Оптимист
 
Регистрация: 07.01.2006
Сообщений: 961
Написано 105 полезных сообщений
(для 259 пользователей)
Ответ: Парадоксальная строка

s.equals(parser) будет правльнее
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Romanzes (29.11.2008)
Старый 29.11.2008, 09:49   #3
Romanzes
Разработчик
 
Аватар для Romanzes
 
Регистрация: 06.04.2008
Сообщений: 541
Написано 196 полезных сообщений
(для 637 пользователей)
Ответ: Парадоксальная строка

Огромное спасибо! Работает!
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверка: является ли строка числом? impersonalis C++ 28 18.06.2012 05:41
строка>массив Spy4433 2D-программирование 3 24.12.2009 04:28
Строка ввода is.SarCasm Blitz3D 0 15.10.2009 19:54
цветная строка BaD RaNDoM 2D-программирование 12 20.01.2009 02:23
Строка в правилах... moka Юмор 2 30.07.2007 21:26


Часовой пояс GMT +4, время: 11:12.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com