Обычная версия
Java форум JavaTalks
форум программистов

Поиск   Пользователи   Группы   Регистрация 
 Профиль   Личные сообщения 

 Вход 

В мидлете недоступен java.lang.String.split()?
Список форумов
 ->  Mobile Java


 
Начать новую тему 
Предыдущая тема :: Следующая тема  
Автор Сообщение
byte255 : 3
Новичок

СообщениеФев 08, 2012 9:50 
Ответить с цитатой
Здравствуйте. Искал по интернетам, как в java разбить строку на части. Нашел на одном форуме, что надо читать доку к java.lang.String. Якобы там есть public String[] split(String regex)

Использую Java ME Platform SDK 3.0, (файл инсталатора IDE называется sun_java_me_sdk-3_0-win.exe&File=sun_java_me_sdk-3_0-win.exe, качал с oracle)
и в установившейся вместе с этой IDE документацией такого метода в классе String нет!

При попытке компиляции пишет "cannot find symbol symbol: method split(java.lang.String) location class.java.lang.String"
(см. скрин Ссылка на скриншот)

Может быть, нужно установить какие-то настройки в свойствах проекта?
Ссылка на скриншот настроек
К началу Посмотреть профиль Отправить личное сообщение
wondertalik : 26
Новичок

СообщениеФев 08, 2012 12:06 
Ответить с цитатой
Возможно Вас устроит java.util.StringTokenizer.
К началу Посмотреть профиль Отправить личное сообщение
Salat-Cx65 : 40
Новичок
Откуда: Кременчуг,Украина

СообщениеФев 08, 2012 15:26 
Ответить с цитатой
Попробуй так

//разбиение строки в массив подстрок с строчным делителем
public static String[] splitString(String str, String delim) {
if (str == null) {
return null;
} else if (str.equals("") || delim == null || delim.length() == 0) {
return new String[]{str};
}
String[] s;
Vector v = new Vector();
int pos, newpos;

pos = 0;
newpos = str.indexOf(delim, pos);

while (newpos != -1) {
v.addElement(str.substring(pos, newpos));
pos = newpos + delim.length();
newpos = str.indexOf(delim, pos);
}
v.addElement(str.substring(pos));

s = new String[v.size()];
for (int i = 0; i < s.length; i++) {
s[i] = (String) v.elementAt(i);
}
return s;
}
К началу Посмотреть профиль Отправить личное сообщение ICQ Number
byte255 : 3
Новичок

СообщениеФев 09, 2012 18:16 
Ответить с цитатой
Спасибо за ответы.

P.S.Интересовали стандартные возможности языка,

P.P.S. два цикла - это много.
К началу Посмотреть профиль Отправить личное сообщение
byte255 : 3
Новичок

СообщениеФев 09, 2012 18:23 
Ответить с цитатой
На мой взгляд лучше примерно так (у меня разбиение по символу, но суть не в этом)
Код:

/**
 * @var dest должен быть инициализован заранее
 * @return кол-во элементов
 */
    static public int split(String src, String[] dest, char dm) {
        String b = new String("");
        int j = 0;
        for (int i = 0; i < src.length(); i++) {
            if (src.charAt(i) == dm) {
                dest[j] = b;
                j++;
                b = "";
                continue;
            }
            b += src.charAt(i);           
        }
        dest[j] = b;
        return ++j;
    }



Ушел читать про java.util.StringTokenizer.

А все таки интересно, split "в остальной джаве" (не ME) есть?
К началу Посмотреть профиль Отправить личное сообщение
Salat-Cx65 : 40
Новичок
Откуда: Кременчуг,Украина

СообщениеФев 09, 2012 20:26 
Ответить с цитатой
Ааа балин, только заметил что это старый исходник, второй цикл не нужен. Он заменяться на vector.copyInto(array)
К началу Посмотреть профиль Отправить личное сообщение ICQ Number
Imix : 435
Бывалый
Откуда: Петербург

СообщениеФев 09, 2012 21:18 
Ответить с цитатой
Цитата:
А все таки интересно, split "в остальной джаве" (не ME) есть?

Есть.
Код:
public class StringSplit {
    public static void main(String args[]) throws Exception{
       String testString = "Real.How.To";
       System.out.println(java.util.Arrays.toString( testString.split("\\.")));
       // output : [Real, How, To]
  }
}
К началу Посмотреть профиль Отправить личное сообщение
 
Начать новую тему  Ответить на тему
Страница 1 из 1
Список форумов
 -> Mobile Java


 
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Java and all Java-related trademarks and logos are trademarks or registered trademarks of Oracle Corporation in the United States and other countries.
Это сайт не относится к фирме Oracle Corporation и не поддерживается ею.

© 2006-2010 www.javatalks.ru: форум java программистов
Используется скрипт phpBB © 2001, 2010 phpBB Group

Хостинг от bizname.ru