2009-09-03 13 views

Respuesta

5

Si por el conjunto de cuerdas que quiere decir arreglo de char:

public class Test 
{ 
    public static void main(String[] args) 
    { 
     String test = "aabbab "; 
     char[] t = test.toCharArray(); 

     for(char c : t) 
      System.out.println(c);  

     System.out.println("The end!");  
    } 
} 

Si no es así, la función String.split() podría transformar una cadena en una matriz de cadena

Ver las String.split ejemplos

/* String to split. */ 
String str = "one-two-three"; 
String[] temp; 

/* delimiter */ 
String delimiter = "-"; 
/* given string will be split by the argument delimiter provided. */ 
temp = str.split(delimiter); 
/* print substrings */ 
for(int i =0; i < temp.length ; i++) 
    System.out.println(temp[i]); 

El input.split("(?!^)") propuesto por Joachim en his answer se basa en:

  • un '?!' de anchura cero búsqueda negativa hacia delante (ver Lookaround)
  • el símbolo de intercalación '^' como un Anchor para que coincida con el inicio de la cadena el patrón de expresión se aplica a

Cualquier el personaje que no es el primero se dividirá. Una cadena vacía no se dividirá, sino que devolverá una matriz vacía.

+1

eso es una matriz de caracteres, no una matriz de cadenas – Chii

+0

@Chii: cierto, he ilustrado ambos resultados ahora. 'char []' y 'String []' – VonC

+0

muy buena ilustración. – Zaki

0

Puede utilizar String.split (expresión regular):

String input = "aabbab"; 
String[] parts = input.split("(?!^)"); 
+1

Como cada carácter es un separador, ningún carácter será datos, por lo que obtendrá una matriz vacía. –

+0

Tiene razón. Tu expresión regular es mejor. –

+0

¡Gracias, no sé si se puede usar con split pero por qué está dividido con?! ^? porque una cuerda no tiene eso ahí? – gingergeek

21
String[] result = input.split("(?!^)"); 

Lo que esto hace es dividir la cadena de entrada en todas las cadenas vacías que no están precedidos por el principio de la cadena.

+0

Gracias chicos, funciona como magic.Cool – gingergeek

+1

Good regex, +1. – VonC

+0

Cuando lo hago. String test = "Esto es una prueba"; y luego lo hago String [] test2 = test.split ("(?!^) "); La matriz solo contiene los caracteres de la primera palabra ...? –

2

Quieres decir que quieres hacer "aabbab" .toCharArray(); ? Que devolverá una matriz de caracteres. ¿O realmente quieres que la matriz resultante contenga objetos de cadena de un solo carácter?

15
String x = "stackoverflow"; 
String [] y = x.split(""); 
Cuestiones relacionadas