Tengo un string = "name";
que quiero convertir en una matriz de cadenas. ¿Cómo lo hago? ¿Hay alguna función incorporada de Java? Puedo hacerlo manualmente, pero estoy buscando una función incorporada de Java.
Quiero una matriz donde cada carácter de la cadena sea una cadena. como char 'n' ahora será la cadena "n" almacenada en una matriz.
String[] ary = new String[] { "name" };
qué operación necesitas. dividir en caracteres, por ejemplo?Respuestas:
Para comenzar con su tarea,
String.split
divide cadenas en una expresión regular y esta expresión puede ser una cadena vacía:Produce la matriz:
Deshacerse de la primera entrada vacía se deja como ejercicio para el lector :-)
Nota: En Java 8, el primer elemento vacío ya no se incluye.
fuente
La segunda línea asigna una matriz de cadenas con la longitud de 1. Tenga en cuenta que no es necesario que especifique una longitud usted mismo, como:
en cambio, la longitud está determinada por el número de elementos en el iniciador. Utilizando
crea una matriz con una longitud de 3.
fuente
Suponiendo que realmente desea una matriz de cadenas de un solo carácter (no una
char[]
oCharacter[]
)1. Usando una expresión regular:
La búsqueda anticipada negativa de ancho cero evita que el patrón coincida al comienzo de la entrada, por lo que no obtiene una cadena vacía inicial.
2. Usando guayaba :
fuente
Supongo que simplemente no es necesario, ya que no será más simple que
Por supuesto que si insistes, podrías escribir:
[Editar] Si desea cadenas de una sola letra, puede usar:
Desafortunadamente, s [0] estará vacío, pero después de esto seguirán las letras n, a, m, e. Si esto es un problema, puede usar, por ejemplo, System.arrayCopy para deshacerse de la primera entrada de la matriz.
fuente
fuente
En java 8, hay un método con el que puede hacer esto: toCharArray ():
Esto resulta en la siguiente matriz:
fuente
String.charAt(0)
cadenas de caracteres individuales innecesariamente. ;)Matriz de cadenas = matriz de caracteres?
¿O tiene una cadena con varias palabras, cada una de las cuales debería ser un elemento de matriz?
String[] array = yourString.split(wordSeparator);
fuente
Simplemente use el
.toCharArray()
método en Java:Esto debería funcionar bien en Java 8.
fuente
¿Convertirlo a tipo
Char
?http://www.javadb.com/convert-string-to-character-array
fuente
char[]
=)Podría usar
string.chars().mapToObj(e -> new String(new char[] {e}));
, aunque esto es bastante largo y solo funciona con Java 8. Aquí hay algunos métodos más: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(", ");
El último es innecesariamente largo, ¡es solo por diversión!
fuente
Un método adicional:
Como ya se mencionó, puede convertir el "nombre" de cadena original en una matriz de caracteres con bastante facilidad:
Para continuar con esta línea de pensamiento, puede convertir la matriz char en una matriz String:
En este punto, su stringArray se llenará con los valores originales de su cadena original "nombre". Por ejemplo, ahora llamando
Devolverá el valor "n" (como una cadena) en este caso.
fuente
Dividir una cadena vacía con String.split () devuelve una matriz de un solo elemento que contiene una cadena vacía . En la mayoría de los casos, probablemente prefiera obtener una matriz vacía, o un nulo si pasa un nulo, que es exactamente lo que obtiene con org.apache.commons.lang3.StringUtils.split (str) .
Otra opción es google guava Splitter.split () y Splitter.splitToList () que devuelven un iterador y una lista correspondientemente. A diferencia de la versión de Apache, Splitter lanzará un NPE en
null
:Si desea una lista en lugar de un iterador, utilice Splitter.splitToList () .
fuente
El método
String.split
generará vacío en primer lugar, debe eliminarlo de la matriz. Es aburrido.fuente
Basado en el título de esta pregunta, vine aquí con el deseo de convertir una Cadena en una matriz de subcadenas divididas por algún delimitador. Agregaré esa respuesta aquí para otros que puedan tener la misma pregunta.
Esto crea una matriz de palabras dividiendo la cadena en cada espacio:
Esto crea la siguiente matriz:
Fuente
Probado en Java 8
fuente
Aquí hay que convertir una cadena simple en una matriz de cadenas utilizando el método dividido.
Salida
fuente