思路💡 首先对读取到的字符串使用toUpperCase()方法,将其中所有字母都转换成大写字母(因为题目中说明了不区分大小写,输出以大写形式输出)遍历字符串并分别记录其中字母G、P、L、T出现的次数循环并按照顺序输出字符串中所有的G、P、L、T这四个字母,直至这四个字母都已经输出完毕;过程中,如果某一个字母已经被输出完了,直接跳过它,继续按照G、P、L、T顺序输出即可 代码 import java.io.*; public class Main { public static void main(String[] args) throws Exception{ BufferedReader bu = new BufferedReader(new InputStreamReader(System.in)); String str = bu.readLine().toUpperCase(); int G = 0,P=0,L=0,T=0; for(int i=0; i < str.length(); ++i) { if(str.charAt(i) == 'G')++G; if(str.charAt(i) == 'P')++P; if(str.charAt(i) == 'L')++L; if(str.charAt(i) == 'T')++T; } while (G > 0 || P> 0 || L> 0 || T > 0) { if (G > 0) { System.out.print('G'); --G; } if (P > 0) { System.out.print('P'); --P; } if (L > 0) { System.out.print('L'); --L; } if (T> 0) { System.out.print('T'); --T; } } } }