En mi Cadena, puedo tener un número arbitrario de palabras separadas por comas. Quería agregar cada palabra a una ArrayList. P.ej:
String s = "a,b,c,d,e,.........";
En mi Cadena, puedo tener un número arbitrario de palabras separadas por comas. Quería agregar cada palabra a una ArrayList. P.ej:
String s = "a,b,c,d,e,.........";
Respuestas:
Prueba algo como
List<String> myList = new ArrayList<String>(Arrays.asList(s.split(",")));
Arrays.asList
documentaciónString.split
documentaciónArrayList(Collection)
documentación del constructorManifestación:
String s = "lorem,ipsum,dolor,sit,amet";
List<String> myList = new ArrayList<String>(Arrays.asList(s.split(",")));
System.out.println(myList); // prints [lorem, ipsum, dolor, sit, amet]
Esta publicación ha sido reescrita como un artículo aquí .
split
su después: P
Arrays.toString()
para imprimirlo, pero sí.
String s1="[a,b,c,d]";
String replace = s1.replace("[","");
System.out.println(replace);
String replace1 = replace.replace("]","");
System.out.println(replace1);
List<String> myList = new ArrayList<String>(Arrays.asList(replace1.split(",")));
System.out.println(myList.toString());
replace = s1.replaceAll("^\\[|]$", "");
Option1 :
List<String> list = Arrays.asList("hello");
Option2 :
List<String> list = new ArrayList<String>(Arrays.asList("hello"));
En mi opinión, Option1 es mejor porque
asList
método crea y devuelve un objeto ArrayList.Consulte la documentación aquí.
List<Character> word1 = new ArrayList<Character>(Arrays.asList(A[0].toCharArray()));
? Estoy tratando de obtener la primera cadena de una matriz de cadenas y convertir esa cadena en charArray y ese charArray en List <Character>
En Java 9, el uso List#of
, que es una lista inmutable de métodos de fábrica estáticos, se vuelve más simple.
String s = "a,b,c,d,e,.........";
List<String> lst = List.of(s.split(","));
s.split("\\s*,\\s*")
se puede agregar para un cuidado adicional
Si está importando o tiene una matriz (de tipo cadena) en su código y tiene que convertirla en lista de matrices (cadena fuera de curso), entonces el uso de colecciones es mejor. Me gusta esto:
String array1[] = getIntent().getExtras().getStringArray("key1"); or String array1[] = ... then
List allEds = new ArrayList(); Collections.addAll(allEds, array1);
Ok, voy a extenderme sobre las respuestas aquí, ya que muchas de las personas que vienen aquí quieren dividir la cadena por un espacio en blanco . Así es como se hace:
List<String> List = new ArrayList<String>(Arrays.asList(s.split("\\s+")));
Podrías usar:
List<String> tokens = Arrays.stream(s.split("\\s+")).collect(Collectors.toList());
Debería preguntarse si realmente necesita ArrayList en primer lugar. Muy a menudo, filtrará la lista en función de criterios adicionales, para los cuales un Stream es perfecto. Es posible que desee un juego; es posible que desee filtrarlos por medio de otra expresión regular, etc. Java 8 proporciona esta extensión muy útil, por cierto, que funcionará en cualquier CharSequence
: https://docs.oracle.com/javase/8/docs/api /java/util/regex/Pattern.html#splitAsStream-java.lang.CharSequence- . Como no necesita la matriz en absoluto, evite crearla así:
// This will presumably be a static final field somewhere.
Pattern splitter = Pattern.compile("\\s+");
// ...
String untokenized = reader.readLine();
Stream<String> tokens = splitter.splitAsStream(untokenized);
Si desea convertir una cadena en una ArrayList, intente esto:
public ArrayList<Character> convertStringToArraylist(String str) {
ArrayList<Character> charList = new ArrayList<Character>();
for(int i = 0; i<str.length();i++){
charList.add(str.charAt(i));
}
return charList;
}
Pero veo una matriz de cadenas en su ejemplo, por lo que si desea convertir una matriz de cadenas en ArrayList, use esto:
public static ArrayList<String> convertStringArrayToArraylist(String[] strArr){
ArrayList<String> stringList = new ArrayList<String>();
for (String s : strArr) {
stringList.add(s);
}
return stringList;
}
Esto está usando Gson en Kotlin
val listString = "[uno,dos,tres,cuatro,cinco]"
val gson = Gson()
val lista = gson.fromJson(listString , Array<String>::class.java).toList()
Log.e("GSON", lista[0])
Tomemos una pregunta: invertir una cadena. Haré esto usando stream (). Collect (). Pero primero cambiaré la cadena a una ArrayList.
public class StringReverse1 {
public static void main(String[] args) {
String a = "Gini Gina Proti";
List<String> list = new ArrayList<String>(Arrays.asList(a.split("")));
list.stream()
.collect(Collectors.toCollection( LinkedList :: new ))
.descendingIterator()
.forEachRemaining(System.out::println);
}}
/*
The output :
i
t
o
r
P
a
n
i
G
i
n
i
G
*/
Si está usando guayaba (y debería hacerlo, vea el elemento efectivo de Java n. ° 15 ):
ImmutableList<String> list = ImmutableList.copyOf(s.split(","));
new ArrayList<String>()
puede ser redundante dependiendo de cómo se utilice. (como en su ejemplo;)