Trong Chuỗi của tôi, tôi có thể có một số từ tùy ý được phân tách bằng dấu phẩy. Tôi muốn từng từ được thêm vào ArrayList. Ví dụ:
String s = "a,b,c,d,e,.........";
Trong Chuỗi của tôi, tôi có thể có một số từ tùy ý được phân tách bằng dấu phẩy. Tôi muốn từng từ được thêm vào ArrayList. Ví dụ:
String s = "a,b,c,d,e,.........";
Câu trả lời:
Hãy thử một cái gì đó như
List<String> myList = new ArrayList<String>(Arrays.asList(s.split(",")));
Bản giới thiệu:
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]
Bài đăng này đã được viết lại thành một bài báo ở đây .
split
sau khi mình: P
Arrays.toString()
để in nó, nhưng có.
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("^\\[|]$", "");
Lựa chọn 1 :
List<String> list = Arrays.asList("hello");
Tùy chọn 2 :
List<String> list = new ArrayList<String>(Arrays.asList("hello"));
Theo tôi, Lựa chọn 1 tốt hơn vì
asList
Phương thức tạo và trả về một đối tượng ArrayList.Vui lòng tham khảo tài liệu tại đây
List<Character> word1 = new ArrayList<Character>(Arrays.asList(A[0].toCharArray()));
tôi đang cố gắng để có được chuỗi đầu tiên của một mảng chuỗi, và chuyển đổi chuỗi thành charArray và charArray vào danh sách <Character>
Trong Java 9, việc sử dụng List#of
, là Phương thức nhà máy sản xuất tĩnh trong danh sách bất biến, trở nên đơn giản hơn.
String s = "a,b,c,d,e,.........";
List<String> lst = List.of(s.split(","));
s.split("\\s*,\\s*")
có thể được thêm vào để chăm sóc thêm
Nếu bạn đang nhập hoặc bạn có một mảng (kiểu chuỗi) trong mã của mình và bạn phải chuyển đổi nó thành danh sách mảng (chuỗi ngoại ngữ) thì việc sử dụng các bộ sưu tập sẽ tốt hơn. như thế này:
String array1[] = getIntent().getExtras().getStringArray("key1"); or String array1[] = ... then
List allEds = new ArrayList(); Collections.addAll(allEds, array1);
Được rồi, tôi sẽ mở rộng các câu trả lời ở đây vì rất nhiều người đến đây muốn chia chuỗi bằng một khoảng trắng . Đây là cách mà nó được hoàn thành:
List<String> List = new ArrayList<String>(Arrays.asList(s.split("\\s+")));
Bạn đã có thể sử dụng:
List<String> tokens = Arrays.stream(s.split("\\s+")).collect(Collectors.toList());
Bạn nên tự hỏi mình nếu bạn thực sự cần ArrayList ngay từ đầu. Thông thường, bạn sẽ lọc danh sách dựa trên các tiêu chí bổ sung, theo đó một Luồng là hoàn hảo. Bạn có thể muốn một bộ; bạn có thể muốn lọc chúng bằng một biểu thức chính quy khác, v.v. Java 8 cung cấp tiện ích mở rộng rất hữu ích này, nhân tiện, sẽ hoạt động trên bất kỳ CharSequence
: https://docs.oracle.com/javase/8/docs/api /java/util/regex/Pattern.html#splitAsStream-java.lang.CharSequence- . Vì bạn không cần mảng, hãy tránh tạo nó như vậy:
// This will presumably be a static final field somewhere.
Pattern splitter = Pattern.compile("\\s+");
// ...
String untokenized = reader.readLine();
Stream<String> tokens = splitter.splitAsStream(untokenized);
Nếu bạn muốn chuyển đổi một chuỗi thành ArrayList, hãy thử cách này:
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;
}
Nhưng tôi thấy một mảng chuỗi trong ví dụ của bạn, vì vậy nếu bạn muốn chuyển đổi một mảng chuỗi thành ArrayList, hãy sử dụng cái này:
public static ArrayList<String> convertStringArrayToArraylist(String[] strArr){
ArrayList<String> stringList = new ArrayList<String>();
for (String s : strArr) {
stringList.add(s);
}
return stringList;
}
Điều này đang sử dụng Gson trong 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])
Hãy đặt một câu hỏi: Đảo ngược một chuỗi. Tôi sẽ làm điều này bằng cách sử dụng stream (). Collect (). Nhưng trước tiên tôi sẽ thay đổi chuỗi thành một 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
*/
Nếu bạn đang sử dụng ổi (và bạn nên sử dụng, hãy xem mục java hiệu quả # 15 ):
ImmutableList<String> list = ImmutableList.copyOf(s.split(","));
new ArrayList<String>()
thể thừa tùy thuộc vào cách nó được sử dụng. (như trong ví dụ của bạn;)