java如何循环字符串ArrayList并为字符串ArrayList中的每个单词创建临时字符数组
假设我有一个名为ArrayList
的dictArray
包含5个单词。这五个词被列为so{"aaron", "abates", "dog", "mellon", "zoo"}
。我需要在这个字符串数组中循环一次列出一个单词,并为每个单词创建一个ArrayList<Character> tempArray
来只存储该单词中的唯一字符。(我一次只需要执行一个单词,因为我将在for循环中对tempArray执行计算)。例如,每个迭代将返回以下内容:
{a,r,o,n}
{a,b,t,e,s}
{d,o,g}
{m,e,l,o,n}
{z,o}
此代码块将仅成功存储主题词的唯一字符:
if(tempArray.contains(word.charAt(i))){
} else {
tempArray.add(word.charAt(i));
}
}
我的问题是:如何设置for循环结构,使其一次只运行一个单词,然后在识别单词后,一次运行一个字母来调用上面的if语句?这是我的当前代码,但我在所有j
下面收到了错误消息type of expression must be an array type but resolved to ArrayList<String>
ArrayList<String> dictArray = new ArrayList<String>();
ArrayList<Character> tempArray = new ArrayList<Character>();
for (int i = 0; i < dictArray.size(); i++) {
for (j = 0; j < dictArray[j]; j++) {
if(tempArray.contains(word.charAt(i))){
} else {
tempArray.add(word.charAt(i));
}
}
}
# 1 楼答案
这是您的代码,具有更好的格式,我将逐行介绍
第4行:
for (j = 0; j < dictArray[j]; j++) {
,如果要访问ArrayList中的元素,请使用get(int index)。此外,还应该使用dictArray。获取(i)而不是j(未初始化)。i是ArrayList中字符串的索引,而j应该是字符串中字符的索引第5-8行:可以组合在一起。如果字符不在tempArray中,则需要添加该字符,这样就不需要使用if-else语句。而且,你们从来并没有初始化过这个单词,我想你们是指dictArray。获取(i)
最后,我认为您需要将tempArray添加到一个新的字符串数组ArrayList(称为answer),该数组包含每个单词的唯一字符
这是修改后的代码
# 2 楼答案
输出:
# 3 楼答案
ArrayList
需要get()
方法来提取特定值。了解foreach lop也可能有帮助,这里由for(char c: tempArray)
给出。基本上,它意味着在列表tempArray
中为每个给定变量名的字符c
这种方法将
tempArray
转换为字符串word
,并将其存储在dictArray
# 4 楼答案
您可以使用for each循环遍历列表,并将个体分解为字符数组,然后循环遍历这些数组