[ Nemanja Avramović @ 08.03.2008. 11:02 ] @
| Zdravo svima,
u školi (Viša ICT) imam predmet Java 1 gde se upoznajemo sa Javom i uopšte objektnim programiranjem, i sve što radimo u školi jesu konzolne aplikacije. Ja sam napravio neku svoju klasu za neka izračunavanja gde koristim standardne tipove podataka (String, integer, ...) i jednu konzolnu aplikaciju i sve to radi lepo. Onda idem na File/New project pa izaberem MIDP application jer želim da napravim sličnu aplikaciju za mobilni telefon, i onu default (Hello world) aplikaciju pokrenem i ona se lepo izvršava u emulatoru. Međutim, kada svoju klasu prebacim u taj package svuda gde koristim String.split(), String.contains(), new Integer(), ... mi prijavljuje sledeće greške:
[att_img]
Kontam da treba nekako da mu "kažem" da treba da u projekat uključi i te standardne klase (šta li su već ), String, Integer, itd... ali tek mesec-dva radim sa Javom (i to uglavnom samo u školi) i nikad se nisam susretao sa ovim, pa bi mi bilo kakva pomoć dobro došla.
Hvala unapred,
Nemanja
p.s. Koristim NetBeans 6.0 |
[ mucky @ 08.03.2008. 13:44 ] @
Ti imash drugi problem - koristish metode klase String koje ne postoje (String.contains i String.split). Prelistaj Java API docs, klasu String pa vidi koje metode ce ti odgovarati (String.split cesh verovatno zameniti klasom StringTokenizer).
Takodje, int broj iz stringa dobijash metodom Integer.parseInt(String s), i obrati pazhnju da je to statichka metoda (shto ce reci da ne smesh da instancirash objekat klase Integer sa new Integer()).
[ grizzly @ 08.03.2008. 15:12 ] @
Kako ne postoji split()? U Javi za mobilne?
[ mucky @ 08.03.2008. 18:37 ] @
Jednostavno ne postoji String.split():
http://java.sun.com/javame/reference/apis/jsr118/
Bilo bi jako neprirodno da postoji, jer te metode nema u Java SE, a Java ME je podskup (vecinom) od Java SE funkcionalnosti.
StringTokenizer ne postoji u Java ME, ali postoji par implementacija na netu pa vredi potrazhiti.
[ grizzly @ 08.03.2008. 23:47 ] @
String[] split(String regex)
Splits this string around matches of the given regular expression.
String[] split(String regex, int limit)
Splits this string around matches of the given regular expression.
iz mog java SE apija u klasi String
moguce je da te ne razumem sta kazes, nisam ekspert. Ne postoji staticka String.split()...
[ mucky @ 09.03.2008. 00:05 ] @
Statichka definitivno ne postoji, napisao sam String.split() chisto da bi se znalo da je iz String klase :)
Metoda split(String regex) zaista postoji u klasi String, u Java SE od verzije 1.4 (nisam je nikada koristio, nisam ni znao da postoji). Moja greshka, dobro si razumeo da sam pogreshio! :)
Ono shto sigurno znam jeste da ova metoda nikada nije postojala u Java ME, shto ne znachi da nece postojati u nekoj od sledecih verzija MIDP standarda.
Uopshteno, podrshka za regularne izraze ne postoji u Java ME, pre svega zbog zahtevnosti u pogledu procesorskog vremena. split() je znachi najbolje implementirati ruchno, preko indexOf(String str, int fromIndex), ili koristiti neku gotovu klasu koja implementira StringTokenizer funkcionalnost u nekoj meri.
[ Nemanja Avramović @ 09.03.2008. 10:59 ] @
Evo dobio sam ručnu implementaciju split-a na DPTu:
Code:
/**
* Split string into multiple strings
* @param original Original string
* @param separator Separator string in original string
* @return Splitted string array
*/
public static String[] split(String original, String separator, boolean includeEmpty)
{
Vector nodes = new Vector();
// Parse nodes into vector
int index = original.indexOf(separator);
while(index>=0)
{
String subs = original.substring(0, index);
if (subs.length() > 0 || includeEmpty)
nodes.addElement( subs );
original = original.substring(index+separator.length());
index = original.indexOf(separator);
}
// Get the last node
if (original.length() > 0 || includeEmpty)
nodes.addElement( original );
// Create splitted string array
String[] result = new String[ nodes.size() ];
if( nodes.size()>0 )
{
for(int loop=0; loop<nodes.size(); loop++)
result[loop] = (String)nodes.elementAt(loop);
}
return result;
}
[Ovu poruku je menjao Nemanja Avramović dana 09.03.2008. u 13:13 GMT+1]
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.