|
Java форум JavaTalks форум программистов
|
|
|
|
| Предыдущая тема :: Следующая тема |
| Автор |
Сообщение |
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;
} |
|
|
|
 |
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) |
|
|
|
 |
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 |
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
|