Permalänk
Medlem

[Java] Dela upp strängar...

Hej!

Skulle behöva hjälp med att dela upp strängar i arrayer. Helst skulle jag vilja skära av dem efter x antal tecken, och sedan stega tillbaka tills den hittar ett mellanslag eller punkt. Sen börjar den söka igen framåt tills den hittat x antal tecken osv.

Har googlat lite men inte hittat någonting, förutom split() som inte fungerar eftersom det inte är garanterat att strängarna innehåller space eller punkt.

Jag ber inte om färdig kod, men någon pekare hur jag ex. stegar igenom en sträng med en for-sats skulle hjälpa.

Tack på förhand.

Visa signatur

Citera eller nämn gärna mig (@ToJa92) om du svarar på något jag skrivit.
Uppskattar du eller blir hjälpt av ett inlägg jag skrivit är jag tacksam om du gillar det.

Permalänk
Medlem
Visa signatur

"I reject your reality and substitute my own." /Adam Savage

Permalänk
Medlem

Liknar String.split() väldigt mycket och det är tyvärr inte den jag är ute efter. Visserligen skulle jag kunna split() på allting och sen loopa x gånger, men det känns lite fulhack.

Visa signatur

Citera eller nämn gärna mig (@ToJa92) om du svarar på något jag skrivit.
Uppskattar du eller blir hjälpt av ett inlägg jag skrivit är jag tacksam om du gillar det.

Permalänk
Medlem

Substring() då? vet inte om jag förstod problemet helt men där kan du ju kapa ur en del av stängen iaf med diverse in params

Visa signatur

Spelrigg: 800D| i7 3930K@4,7 GHz - Custom WC | 32 GB Kingston HyperX Beast | 7970 GHz X-Edition |1x30 Dell U3011, 2x27" | Sennheiser HD650 | Xonar Essence STX |
Laptop: G74SX 17,3" 120 Hz 3D |
Server: Phenom II X4 955BE | Corsair XMS3 8 GB | 16 HDDs, 27 TB |
HTPCs: ASUS EEE Box 1.8 Ghz | Blu-Ray | OCZ Vertex 2 60 GB | 4 GB RAM |

Permalänk
Medlem

Du får börja med att plocka ut den del av strängen du är ute efter och sedan backa tillbaka tills du hittar ett mellanslag eller punkt. När du gjort det sparar du undan strängen så långt och börjar om med samma hantering. Vad har du tänkt dig göra om du inte hittar något mellanslag eller punkt efter x tecken?

Permalänk
Medlem
Skrivet av Gnejs:

Substring() då? vet inte om jag förstod problemet helt men där kan du ju kapa ur en del av stängen iaf med diverse in params

substring() ser lite bättre ut, tack!

Skrivet av Garret:

Du får börja med att plocka ut den del av strängen du är ute efter och sedan backa tillbaka tills du hittar ett mellanslag eller punkt. När du gjort det sparar du undan strängen så långt och börjar om med samma hantering. Vad har du tänkt dig göra om du inte hittar något mellanslag eller punkt efter x tecken?

Texten får aldrig överstiga x tecken. Därför så kommer jag att behöva "skära av" texten vid x tecken om det inte går att hitta någon punkt/mellanslag.

Visa signatur

Citera eller nämn gärna mig (@ToJa92) om du svarar på något jag skrivit.
Uppskattar du eller blir hjälpt av ett inlägg jag skrivit är jag tacksam om du gillar det.

Permalänk
Medlem

Kan man inte använda regexp i detta fallet?

Permalänk
Medlem

Lyckades äntligen, kanske inte är perfekt men än så länge ser det rätt ut. Här kommer koden, om någon är intresserad(eller vill säga hur dålig jag är på att koda, alternativt har förslag till förbättringar/missar):

if(str.length()>25){ while(str.length()>0){ if(str.length()<=25){ System.out.println(str); str = ""; } else { for(int i=0; i<str.length() && i<=25; i++){ c = str.charAt(i); if(Character.isWhitespace(c) || c == '\u002E') lastspace=i; } System.out.println(lastspace); tempstring = str.substring(0, lastspace); str = str.substring(lastspace); System.out.println(tempstring); } System.out.println(str.length()+">0"); } } else { System.out.println(str); }

Lämnade kvar lite sout's efter mina tester.

Visa signatur

Citera eller nämn gärna mig (@ToJa92) om du svarar på något jag skrivit.
Uppskattar du eller blir hjälpt av ett inlägg jag skrivit är jag tacksam om du gillar det.

Permalänk
Skrivet av ToJa92:

Lyckades äntligen, kanske inte är perfekt men än så länge ser det rätt ut. Här kommer koden, om någon är intresserad(eller vill säga hur dålig jag är på att koda, alternativt har förslag till förbättringar/missar):

Jag har ett förslag, och att det är att du övar på att formulera, på svenska, vad algoritmen ska göra.

Med din första förklaring så var det inte uppenbart (för mig i alla fall) vad du ville åstadkomma. Hade du tydligare kunnat formulera vad algoritmen skulle göra så hade du också kommit närmare en implementation av den.

Ju mer du övar på det desto tydligare kommer du att kunna beskriva algoritmen, tills dess att din beskrivning bara behöver en enklare översättning till ett programmeringsspråk.