Na minha String, posso ter um número arbitrário de palavras separadas por vírgulas. Eu queria que cada palavra fosse adicionada a uma ArrayList. Por exemplo:
String s = "a,b,c,d,e,.........";
Na minha String, posso ter um número arbitrário de palavras separadas por vírgulas. Eu queria que cada palavra fosse adicionada a uma ArrayList. Por exemplo:
String s = "a,b,c,d,e,.........";
Respostas:
Tente algo como
List<String> myList = new ArrayList<String>(Arrays.asList(s.split(",")));
Arrays.asList
documentaçãoString.split
documentaçãoArrayList(Collection)
documentação do construtorDemo:
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 postagem foi reescrita como um artigo aqui .
split
depois dele: P
Arrays.toString()
para imprimi-lo, mas sim.
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("^\\[|]$", "");
Opção 1 :
List<String> list = Arrays.asList("hello");
Opção 2 :
List<String> list = new ArrayList<String>(Arrays.asList("hello"));
Na minha opinião, a Opção 1 é melhor porque
asList
método cria e retorna um objeto ArrayList.Consulte a documentação aqui
List<Character> word1 = new ArrayList<Character>(Arrays.asList(A[0].toCharArray()));
Estou tentando obter a primeira String de uma matriz de string e converter essa string em charArray e esse charArray em List <Character>
No Java 9, usar List#of
, que é uma Lista Imutável de Métodos de Fábrica estáticos, tornou-se mais simples.
String s = "a,b,c,d,e,.........";
List<String> lst = List.of(s.split(","));
s.split("\\s*,\\s*")
pode ser adicionado para cuidado extra
Se você está importando ou tem um array (do tipo string) em seu código e tem que convertê-lo em arraylist (string offcourse), então o uso de coleções é melhor. como isso:
String array1[] = getIntent().getExtras().getStringArray("key1"); or String array1[] = ... then
List allEds = new ArrayList(); Collections.addAll(allEds, array1);
Ok, vou estender as respostas aqui, já que muitas pessoas que vêm aqui querem dividir a string por um espaço em branco . Assim que se faz:
List<String> List = new ArrayList<String>(Arrays.asList(s.split("\\s+")));
Você pode usar:
List<String> tokens = Arrays.stream(s.split("\\s+")).collect(Collectors.toList());
Você deve se perguntar se você realmente precisa do ArrayList em primeiro lugar. Muitas vezes, você filtrará a lista com base em critérios adicionais, para os quais um Stream é perfeito. Você pode querer um conjunto; você pode querer filtrá-los por meio de outra expressão regular, etc. Java 8 fornece esta extensão muito útil, a propósito, que funcionará em qualquer CharSequence
: https://docs.oracle.com/javase/8/docs/api /java/util/regex/Pattern.html#splitAsStream-java.lang.CharSequence- . Como você não precisa da matriz, evite criá-la assim:
// This will presumably be a static final field somewhere.
Pattern splitter = Pattern.compile("\\s+");
// ...
String untokenized = reader.readLine();
Stream<String> tokens = splitter.splitAsStream(untokenized);
Se você deseja converter uma string em uma ArrayList, tente o seguinte:
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;
}
Mas eu vejo uma matriz de string em seu exemplo, então se você quiser converter uma matriz de string em ArrayList, use isto:
public static ArrayList<String> convertStringArrayToArraylist(String[] strArr){
ArrayList<String> stringList = new ArrayList<String>();
for (String s : strArr) {
stringList.add(s);
}
return stringList;
}
Isso é usar Gson em 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])
Vamos fazer uma pergunta: Reverter uma String. Vou fazer isso usando stream (). Collect (). Mas primeiro devo mudar a string em uma 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
*/
Se você estiver usando goiaba (e deveria estar, consulte o item 15 de java eficaz ):
ImmutableList<String> list = ImmutableList.copyOf(s.split(","));
new ArrayList<String>()
pode ser redundante dependendo de como é usado. (como no seu exemplo;)