想把输入的大写字符删去的代码,可是输出的时候还是存在大写字母

package cn.day01.demo02;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class aAaA {
public static void main(String[] args) {
List list = new ArrayList<>();
Scanner sc = new Scanner(System.in);
Character[] chars = new Character[]{'S', 'S', 'D', 'a', 's', 'd', 'S', 'A', 'D', 'b'};
for (int i = 0; i < chars.length; i++) {
list.add(chars[i]);
}
System.out.println(list);
System.out.println(list.size());
for (int i = 0; i < list.size(); i++) {
if (list.get(i) <= 90) {
System.out.print(list.get(i));
list.remove(i);
} else {
System.out.println(list.get(i));
}
}
System.out.println(list);
}
}

for (int i = 0; i < list.size(); i++)
->
for (int i = list.size() - 1; i >= 0; i--)
看看

帮你优化了下,代码上传不了
图片说明

你的代码

List<Character> list = new ArrayList<>();
        Scanner sc = new Scanner(System.in);
        char[] chars = new char[]{'S', 'S', 'D', 'a', 's', 'd', 'S', 'A', 'D', 'b'};
        for (int i = 0; i < chars.length; i++) {
            list.add(chars[i]);
        }
        System.out.println(list);
        System.out.println(list.size());
        for (int i = 0; i < list.size(); i++) {
            if (list.get(i) <= 90) {
                System.out.print(list.get(i));
                list.remove(i);         //这个地方,remove后,list.size会-1  会影响循环   
            } else {
                System.out.println(list.get(i));
            }
        }
        System.out.println(list);

我的代码

   Scanner sc = new Scanner(System.in);
        Character[] chars = new Character[]{'S', 'S', 'D', 'a', 's', 'd', 'S', 'A', 'D', 'b'};
        List<Character> list = Arrays.stream(chars).filter(c-> c >90).collect(Collectors.toList());
        System.out.println(list);