我有一个输入 String
,我希望其字母位于 ArrayList
中。从"abc"
到['a', 'b', 'c']
。
我尝试了split()
方法,但错误是Cannot resolve method 'asList(java.lang.String[])'
userInput = scanner.next();
inputLetters = new ArrayList<Character>(Arrays.<Character>asList(userInput.split("")));
我有Java 13,所以应该可以使用
答案 0 :(得分:5)
将String[]
传递给Arrays.asList()
时,会得到List<String>
,而不是List<Character>
。
您可以将List<String>
转换为List<Character>
,如下所示:
List<Character> inputLetters = Arrays.asList(userInput.split(""))
.stream()
.map(s -> s.charAt(0))
.collect(Collectors.toList());
获取List<Character>
的另一种方法:
List<Character> inputLetters = userInput.chars()
.mapToObj(i -> (char)i)
.collect(Collectors.toList());
当然,如果您不介意使用char[]
而不是List<Character>
,只需使用userInput.toCharArray()
。
答案 1 :(得分:2)
您可以使用toCharArray。这是示例代码
String userInput = "abc";
for (char c : userInput.toCharArray()) {
System.out.println(c);
}
答案 2 :(得分:2)
此错误是由于userInput.split("")
生成["a","b","c"]
(它是一个字符串数组)而不是预期的['a','b','c']
(是一个字符数组)引起的。
一个简单的解决方法是:
String userInput = "abc";
char[] inputCharArray = userInput.toCharArray();
List<Character> userList = new ArrayList<>();
for(char c: inputCharArray)
userList.add(c);
答案 3 :(得分:0)
此代码应该有效:
public static ArrayList<Character> convertStringToList(String s){
ArrayList<Character> list = new ArrayList<>();
char[] chars = s.toCharArray();
for (char c : chars){
list.add(c);
}
return list;
}
代码只是将String转换为char []并遍历数组,从而形成列表。