Ik heb een string = "name";
Ik wil converteren naar een stringarray.
Hoe doe ik het?
Is er een ingebouwde Java-functie? Ik kan het handmatig doen, maar ik ben op zoek naar een ingebouwde Java-functie.
Ik wil een array waarin elk teken van de tekenreeks een tekenreeks is.
like char ‘n’ wordt nu string “n” opgeslagen in een array.
Antwoord 1, autoriteit 100%
Om te beginnen met je opdracht, splitst String.split
strings op een reguliere expressie en deze expressie kan een lege string zijn:
String[] ary = "abc".split("");
Geeft de array:
(java.lang.String[]) [, a, b, c]
Het wegwerken van de lege eerste invoer wordt overgelaten als een oefening voor de lezer 🙂
Opmerking:In Java 8 wordt het lege eerste element niet meer opgenomen.
Antwoord 2, autoriteit 21%
String strName = "name";
String[] strArray = new String[] {strName};
System.out.println(strArray[0]); //prints "name"
De tweede regel wijst een String-array toe met de lengte van 1. Merk op dat u zelf geen lengte hoeft op te geven, zoals:
String[] strArray = new String[1];
in plaats daarvan wordt de lengte bepaald door het aantal elementen in de initalizer. Met behulp van
String[] strArray = new String[] {strName, "name1", "name2"};
maakt een array met een lengte van 3.
Antwoord 3, autoriteit 7%
Ervan uitgaande dat u echt een reeks tekenreeksen van één teken wilt (geen char[]
of Character[]
)
1. Een regex gebruiken:
public static String[] singleChars(String s) {
return s.split("(?!^)");
}
De negatieve lookahead van nul breedte voorkomt dat het patroon overeenkomt aan het begin van de invoer, zodat u geen leidende lege tekenreeks krijgt.
2. Guavegebruiken:
import java.util.List;
import org.apache.commons.lang.ArrayUtils;
import com.google.common.base.Functions;
import com.google.common.collect.Lists;
import com.google.common.primitives.Chars;
// ...
public static String[] singleChars(String s) {
return
Lists.transform(Chars.asList(s.toCharArray()),
Functions.toStringFunction())
.toArray(ArrayUtils.EMPTY_STRING_ARRAY);
}
Antwoord 4, autoriteit 7%
Ik denk dat het gewoon niet nodig is, omdat het niet eenvoudiger wordt dan
String[] array = {"name"};
Als je erop staat, kun je natuurlijk schrijven:
static String[] convert(String... array) {
return array;
}
String[] array = convert("name","age","hobby");
[Bewerken]
Als u strings van één letter wilt, kunt u het volgende gebruiken:
String[] s = "name".split("");
Helaas zijn S [0] leeg, maar daarna zullen de letters n, A, M, E volgen. Als dit een probleem is, kunt u b.v. System.Arraycopy om de eerste array-invoer af te komen.
Antwoord 5, Autoriteit 5%
In Java 8 is er een methode waarmee u dit kunt doen: Tocharray ():
String k = "abcdef";
char[] x = k.toCharArray();
Dit resulteert in de volgende array:
[a,b,c,d,e,f]
Antwoord 6, Autoriteit 5%
String data = "abc";
String[] arr = explode(data);
public String[] explode(String s) {
String[] arr = new String[s.length];
for(int i = 0; i < s.length; i++)
{
arr[i] = String.valueOf(s.charAt(i));
}
return arr;
}
Antwoord 7, Autoriteit 2%
string array = reeks tekens?
Of heb je een touw met meerdere woorden die elk een array-element moeten zijn?
String[] array = yourString.split(wordSeparator);
Antwoord 8, Autoriteit 2%
Gebruik gewoon de .toCharArray()
methode in Java:
String k = "abc";
char[] alpha = k.toCharArray();
Dit zou prima moeten werken in Java 8.
Antwoord 9
Converteer het naar het type Char
?
http://www.javadb.com/convert-string-to -Character-array
Antwoord 10
Je zou kunnen gebruiken string.chars().mapToObj(e -> new String(new char[] {e}));
, maar dit is vrij lang en werkt alleen met java 8 . Hier zijn een paar meer methoden:
string.split(""); (Has an extra whitespace character at the beginning of the array if used before Java 8)
string.split("|");
string.split("(?!^)");
Arrays.toString(string.toCharArray()).substring(1, string.length() * 3 + 1).split(", ");
De laatste is gewoon onnodig lang, het is gewoon voor de lol!
Antwoord 11
Een extra methode:
Zoals reeds vermeld, kunt u de originele String “naam” naar een array van karakters te zetten vrij gemakkelijk:
String originalString = "name";
char[] charArray = originalString.toCharArray();
Om deze gedachtegang voort te zetten, kun je vervolgens omzetten van de char array naar een string array:
String[] stringArray = new String[charArray.length];
for (int i = 0; i < charArray.length; i++){
stringArray[i] = String.valueOf(charArray[i]);
}
Op dit punt, uw stringArray zal worden gevuld met de oorspronkelijke waarden van uw oorspronkelijke string “naam”.
Bijvoorbeeld, nu bellen
System.out.println(stringArray[0]);
zal terugkomen de waarde “n” (als string) in dit geval.
Antwoord 12
Een lege string splitsen met String.split()retourneert een array met één element die een lege tekenreeks bevat. In de meeste gevallen zou je waarschijnlijk liever een lege array hebben, of een null als je een null hebt doorgegeven, en dat is precies wat je krijgt met org.apache.commons.lang3.StringUtils.split(str).
import org.apache.commons.lang3.StringUtils;
StringUtils.split(null) => null
StringUtils.split("") => []
StringUtils.split("abc def") => ["abc", "def"]
StringUtils.split("abc def") => ["abc", "def"]
StringUtils.split(" abc ") => ["abc"]
Een andere optie is google guave Splitter.split()en Splitter.splitToList()die een iterator en een lijst dienovereenkomstig retourneren. In tegenstelling tot de apache-versie zal Splitter een NPE op null
gooien:
import com.google.common.base.Splitter;
Splitter SPLITTER = Splitter.on(',').trimResults().omitEmptyStrings();
SPLITTER.split("a,b, c , , ,, ") => [a, b, c]
SPLITTER.split("") => []
SPLITTER.split(" ") => []
SPLITTER.split(null) => NullPointerException
Als u een lijst wilt in plaats van een iterator, gebruik dan Splitter.Splittolist () .
Antwoord 13
/**
* <pre>
* MyUtils.splitString2SingleAlphaArray(null, "") = null
* MyUtils.splitString2SingleAlphaArray("momdad", "") = [m,o,m,d,a,d]
* </pre>
* @param str the String to parse, may be null
* @return an array of parsed Strings, {@code null} if null String input
*/
public static String[] splitString2SingleAlphaArray(String s){
if (s == null )
return null;
char[] c = s.toCharArray();
String[] sArray = new String[c.length];
for (int i = 0; i < c.length; i++) {
sArray[i] = String.valueOf(c[i]);
}
return sArray;
}
METHODE String.split
WORDT LEGE 1ST GEWELDIG, U moet het van de array verwijderen. Het is saai.
Antwoord 14
Op basis van de titel van deze vraag kwam ik hier een string om te zetten in een reeks substrings gedeeld door een scheidingsteken. Ik zal dat antwoord hier toevoegen voor anderen die dezelfde vraag hebben.
Dit maakt een scala aan woorden door de string op elke ruimte te splitsen:
String str = "string to string array conversion in java";
String delimiter = " ";
String strArray[] = str.split(delimiter);
Hiermee wordt de volgende array weergegeven:
// [string, to, string, array, conversion, in, java]
Getest in Java 8
Antwoord 15
hier is het converteren van een eenvoudige string naar een string-array met behulp van de split-methode.
String [] stringArray="My Name is ABC".split(" ");
Uitvoer
stringArray[0]="My";
stringArray[1]="Name";
stringArray[2]="is";
stringArray[3]="ABC";