/ / Ako môžem analyzovať reťazec na jednotlivé slová a triediť ich v Jave? - java

Ako môžem analyzovať reťazec do jednotlivých slov a triediť ich v jazyku Java? - java

Snažím sa, aby užívateľ zadal riadok textua potom byť schopný zmeniť poradie. Nerozumiem tomu, ako byť schopný oddeliť každé slovo od vstupného textu, aby som mohol použiť podreťazec a zmeniť poradie. Neviem, ako používať pole a mám iba dva týždňové skúsenosti s programovaním.

odpovede:

3 pre odpoveď č. 1

Nerozumiem tomu, ako byť schopný oddeliť každé slovo od vstupného textu

ak inputStr je váš vstupný reťazec, ktorý môžete použiť

String[] words = inputStr.split("\s+");

Takto sa vytvorí pole s názvom words a naplnil by ho (oddelené) slovami vstupného reťazca.

String.split() je vysvetlené tu, Ak ste sa nestretli s regulárnymi výrazmi, "\s+" jednoducho znamená „jeden alebo viac medzier“.


0 pre odpoveď č. 2

Ak máte na mysli JavaScript, nie Java, syntax sa trochu líši od JavaScriptu

var words = inputStr.replace(/s+/g, " ").split(" ");

Kde inputStr.replace(/s+/g, " ") nahradí 1+ medzier za 1 medzeru a split(" ") rozdelí reťazec oddelený medzerami na pole.

Potom môžete zoradiť pole podľa toho, čo chcete.

Ak chcete, aby sa zoradené pole opäť stalo reťazcom, použite:

var newString = words.join(" ");

0 pre odpoveď č. 3

Návrh aix na použitie regexu na rozdelenie dostane reťazec analyzovaný do poľa, ktoré má v javascripte spôsob triedenia.

s = "zero apple watchdog hammer";
s.split( " " ).sort();

... mali by sme vytvoriť pole ...

["apple", "hammer", "watchdog", "zero"]

Nie je to príliš odlišné v Jave ...

String s = "zero apple watchdog hammer";
String[] splits = s.split( " " );
Arrays.sort( splits );
System.out.println( String.format( "splits: %s", Arrays.toString( splits ) ) );

Regex prešiel na split možno samozrejme vylepšiť tak, aby zvládal všetky druhy medzier. Nechám to ako cvičenie pre čitateľa.