Sätta or i en array från en text

Permalänk
Avstängd

Sätta or i en array från en text

Hej

Jag har en uppgift i Java och det är att jag har en random text och ska sätta in varje ord i texten i en array.

Ex.
Meningen är: Hej på dig
Array: word[]

Då ska det bli:
word[0] = Hej
word[1] = på
word[2] = dig

Hur kan jag lösa det på ett så smidigt sätt som möjligt?

Permalänk
Medlem
Skrivet av Pandy95:

Hej

Jag har en uppgift i Java och det är att jag har en random text och ska sätta in varje ord i texten i en array.

Ex.
Meningen är: Hej på dig
Array: word[]

Då ska det bli:
word[0] = Hej
word[1] = på
word[2] = dig

Hur kan jag lösa det på ett så smidigt sätt som möjligt?

String split på space skulle väl vara snabbast annars?

Permalänk
Avstängd

Så här har jag gjort nu:

public class upg1_4 { public static void main(String[]args){ String randtext = "Yout th a forn I whis aper thourchould there Pip. `Andke throating meste. Huld ing was bres. She -- I darre the wither legiverwas ger. If youtic tweerhad weep ank at th fain. `I siso be m"; String word[] = new String[1000]; String text = randtext; for(int i = 0;i < 1000;i++){ int length = text.length(); int pos = text.indexOf(' '); word[i] = text.substring(0,pos); text = text.substring(pos+1, length); } } }

Men har lite problem får ett error när jag kör det.

Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: -1
at java.lang.String.substring(Unknown Source)
at upg1_4.main(upg1_4.java:12)

Permalänk
Medlem
Skrivet av Pandy95:

Så här har jag gjort nu:

public class upg1_4 { public static void main(String[]args){ String randtext = "Yout th a forn I whis aper thourchould there Pip. `Andke throating meste. Huld ing was bres. She -- I darre the wither legiverwas ger. If youtic tweerhad weep ank at th fain. `I siso be m"; String word[] = new String[1000]; String text = randtext; for(int i = 0;i < 1000;i++){ int length = text.length(); int pos = text.indexOf(' '); word[i] = text.substring(0,pos); text = text.substring(pos+1, length); } } }

Men har lite problem får ett error när jag kör det.

Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: -1
at java.lang.String.substring(Unknown Source)
at upg1_4.main(upg1_4.java:12)

Som liquidedust skrev: kolla på string.split

Skickades från m.sweclockers.com

Permalänk
Avstängd
Permalänk
Medlem

Det ska gå manuellt också, var inte rädd för det, men kanske split är att föredra. Din nuvarande kod och strängpositioner är väldigt ologiska, kanske du bör sätta dig med ett papper och se hur du skulle göra i verkligheten?

Permalänk
Medlem

edit: Läste din kod lite slarvigt. ditt fel beror antagligen på att string.indexof() returnerar -1 när den inte hittar något mellanslag.

Visa signatur

| Ryzen 5800x | Asus prime x470 pro | Asus rtx 3080 tuf oc | Gskill 32gb 3,6ghz | Dell S2721DGFA | Asus MG279Q |