Forum » Programiranje » java problem
java problem
BRBR ::
//list1 je [1,2] //HashSet - ker ne dovoli duplikatov HashSet set1 = new HashSet(list1); //args[1] je string "2$3" set1.addAll(Arrays.asList(args[1].split("\\$"))); //če gledam (args[27].split("\\$")) v debugerju sta tam 2 in 3, OK //v set1.toString(); pa "1,2, 2,3". Od kod tale space ?
- spremenil: BRBR ()
Sergio ::
public class test { public static void main(String[] args) { List list1 = Arrays.asList("1", "2"); HashSet set1 = new HashSet(list1); set1.addAll(Arrays.asList("2$3".split("\\$"))); System.out.println(set1.toString()); } }
Output je
[3, 2, 1]
Mislim, da ni druge, kot da je problem v vhodnih podatkih. Nekje ti en space reže. Podrobneje poglej oba lista.
Tako grem jaz, tako gre vsak, kdor čuti cilj v daljavi:
če usoda ustavi mu korak,
on se ji zoperstavi.
če usoda ustavi mu korak,
on se ji zoperstavi.
BRBR ::
EDIT2: gledam tvoj utput, in vidim space pred 2 in pred 1. A to si peš dodal, al pa je forum pripopal ?
Evo, real thing. Ne vidim zakaj ne dela. Zdej je space tud pred 27 (v zadnji vrstici outputa).
EDIT: (ga vidim v outputu v netbenas pred drugim 33 in pred 27, tule ga forum požre)
Apak vseeno, očitno pred drugim 33 pa je gotovo.
output:
Evo, real thing. Ne vidim zakaj ne dela. Zdej je space tud pred 27 (v zadnji vrstici outputa).
EDIT: (ga vidim v outputu v netbenas pred drugim 33 in pred 27, tule ga forum požre)
Apak vseeno, očitno pred drugim 33 pa je gotovo.
System.out.println(list1); HashSet set1 = new HashSet(list1); System.out.println(set1); System.out.println(args[27]); System.out.println( args[27].split("\\$").toString()); if (!args[27].equals("")) { set1.addAll(Arrays.asList(args[27].split("\\$"))); } System.out.println(set1.toString());
output:
[13,33]
[13,33]
27$33
[Ljava.lang.String;@1266392
[13,33, 33, 27]
Zgodovina sprememb…
- spremenil: BRBR ()
BRBR ::
Evo en test case. Če mi kdo vsaj razloži zakaj se ne dogodi nič v drugi vrstici, bi bilo že nekaj (-:
Zadnji out.print se lepo vidi kako se pojavijo kr eni presledki iz lufta takorekoč.
List list1 = Arrays.asList("13,33"); list1.removeAll(Arrays.asList("13"));// THIS REMOVES NOTHING ! I suspect coz it thinks that 13 = " 13" String arg = "44,55"; System.out.println(list1);// [13,33] HashSet set1 = new HashSet(list1); System.out.println(set1);// [13,33] System.out.println(arg);//44,55 if (!arg.equals("")) { String[] tmpArrStr = arg.split(","); //set1.addAll(Arrays.asList(tmpArrStr)); //attempt zo do somethig about that, but with no effect(-: for (int k = 0; k < tmpArrStr.length; k++) { set1.add(tmpArrStr[k].replaceAll("[^(0-9)]", "").toString()); } } System.out.println(set1.toString());//[13,33, 44, 55]
Zadnji out.print se lepo vidi kako se pojavijo kr eni presledki iz lufta takorekoč.
Zgodovina sprememb…
- spremenil: BRBR ()
BRBR ::
ups, ahh sorry...maš prav...Hvala za posojen pogled na kodo.
Zgodovina sprememb…
- spremenil: BRBR ()
Sergio ::
BRBR, zelo bi ti pomagalo če bi se naučil uporabljati templated kodo, in bi ti kompajler zajamral da druga vrstica ni OK.
Poglej, v prvi vrstici boš iz Stringa "13,33" dobil List, v katerem je en element "13,33".
Najbrž si hotel klicati Arrays.asList("13", "33"). V tem primeru dobiš List, ki ima dva elementa, "13" in "33".
V drugi vrstici ga spet biksaš. Najbrž si hotel klicati list1.removeAll("33").
Lej, priporočam ti da si za začetek pozorno prebereš vsaj API funkcij, ki jih kličeš, da boš bolj podrobno razumel kaj se dogaja spodaj.
Če pa "že razumeš" kaj se dogaja, si pa površen, drugega ti ne morem reči.
Poglej, v prvi vrstici boš iz Stringa "13,33" dobil List, v katerem je en element "13,33".
Najbrž si hotel klicati Arrays.asList("13", "33"). V tem primeru dobiš List, ki ima dva elementa, "13" in "33".
V drugi vrstici ga spet biksaš. Najbrž si hotel klicati list1.removeAll("33").
Lej, priporočam ti da si za začetek pozorno prebereš vsaj API funkcij, ki jih kličeš, da boš bolj podrobno razumel kaj se dogaja spodaj.
Če pa "že razumeš" kaj se dogaja, si pa površen, drugega ti ne morem reči.
Tako grem jaz, tako gre vsak, kdor čuti cilj v daljavi:
če usoda ustavi mu korak,
on se ji zoperstavi.
če usoda ustavi mu korak,
on se ji zoperstavi.
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | [Java - DN] Naključna številaOddelek: Šola | 1364 (893) | nyler |
» | Rekurzija v javi z ArrayListOddelek: Programiranje | 1589 (1432) | marjan_h |
» | [Java] Frekvenca besedOddelek: Programiranje | 1341 (1195) | zila90 |
» | [Java] Preverjanje polja za iste stringeOddelek: Programiranje | 1142 (1020) | infiniteLoop |
» | [Java] Shranjevanje podatkov in datotekOddelek: Programiranje | 1235 (1188) | Vesoljc |