Di String saya, saya dapat memiliki sejumlah kata acak yang dipisahkan koma. Saya ingin setiap kata ditambahkan ke dalam ArrayList. Misalnya:
String s = "a,b,c,d,e,.........";
Di String saya, saya dapat memiliki sejumlah kata acak yang dipisahkan koma. Saya ingin setiap kata ditambahkan ke dalam ArrayList. Misalnya:
String s = "a,b,c,d,e,.........";
Jawaban:
Cobalah sesuatu seperti
List<String> myList = new ArrayList<String>(Arrays.asList(s.split(",")));
Demo:
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]
Posting ini telah ditulis ulang sebagai artikel di sini .
split
setelahnya: P
Arrays.toString()
untuk mencetaknya, tapi ya.
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"));
Menurut saya, Option1 lebih baik karena
asList
metode membuat dan mengembalikan Objek ArrayList.Silakan lihat dokumentasi di sini
List<Character> word1 = new ArrayList<Character>(Arrays.asList(A[0].toCharArray()));
Saya mencoba untuk mendapatkan String pertama dari sebuah array string, dan mengubah string itu menjadi charArray dan charArray itu ke List <Character>
Di Java 9, penggunaan List#of
, yang merupakan Metode Pabrik Statis Daftar Tidak Dapat Diubah, menjadi lebih sederhana.
String s = "a,b,c,d,e,.........";
List<String> lst = List.of(s.split(","));
s.split("\\s*,\\s*")
dapat ditambahkan untuk perawatan ekstra
Jika Anda mengimpor atau Anda memiliki array (tipe string) dalam kode Anda dan Anda harus mengubahnya menjadi daftar array (string offcourse) maka penggunaan koleksi lebih baik. seperti ini:
String array1[] = getIntent().getExtras().getStringArray("key1"); or String array1[] = ... then
List allEds = new ArrayList(); Collections.addAll(allEds, array1);
Oke, saya akan memperluas jawaban di sini karena banyak orang yang datang ke sini ingin membagi string dengan spasi . Beginilah caranya:
List<String> List = new ArrayList<String>(Arrays.asList(s.split("\\s+")));
Anda bisa menggunakan:
List<String> tokens = Arrays.stream(s.split("\\s+")).collect(Collectors.toList());
Anda harus bertanya pada diri sendiri apakah Anda benar-benar membutuhkan ArrayList sejak awal. Sangat sering, Anda akan memfilter daftar berdasarkan kriteria tambahan, yang alirannya sempurna. Anda mungkin menginginkan satu set; Anda mungkin ingin memfilternya dengan menggunakan ekspresi reguler lain, dll. Java 8 menyediakan ekstensi yang sangat berguna ini, yang akan bekerja pada CharSequence
: https://docs.oracle.com/javase/8/docs/api /java/util/regex/Pattern.html#splitAsStream-java.lang.CharSequence- . Karena Anda tidak membutuhkan array sama sekali, hindari membuatnya seperti ini:
// This will presumably be a static final field somewhere.
Pattern splitter = Pattern.compile("\\s+");
// ...
String untokenized = reader.readLine();
Stream<String> tokens = splitter.splitAsStream(untokenized);
Jika Anda ingin mengubah string menjadi ArrayList, coba ini:
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;
}
Tetapi saya melihat array string dalam contoh Anda, jadi jika Anda ingin mengubah array string menjadi ArrayList gunakan ini:
public static ArrayList<String> convertStringArrayToArraylist(String[] strArr){
ArrayList<String> stringList = new ArrayList<String>();
for (String s : strArr) {
stringList.add(s);
}
return stringList;
}
Ini menggunakan Gson di 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])
Mari kita ajukan pertanyaan: Membalikkan String. Saya akan melakukan ini menggunakan stream (). Collect (). Tapi pertama-tama saya akan mengubah string menjadi 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
*/
Jika Anda menggunakan jambu biji (dan seharusnya, lihat item java efektif # 15 ):
ImmutableList<String> list = ImmutableList.copyOf(s.split(","));
new ArrayList<String>()
Mungkin berlebihan tergantung bagaimana penggunaannya. (seperti dalam contoh Anda;)