string naar string array conversie in java

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.splitstrings 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 nullgooien:

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.splitWORDT 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]

Bron

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";

Other episodes