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ď č. 1Nerozumiem 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.