本题要求编写程序,顺序输出给定字符串中所出现过的大写英文字母,每个字母只输出一遍;若无大写英文字母则输出“Not Found”。
输入格式:
输入为一个以回车结束的字符串(少于80个字符)。
输出格式:
按照输入的顺序在一行中输出所出现过的大写英文字母,每个字母只输出一遍。若无大写英文字母则输出“Not Found”。
输入样例1:
FONTNAME and FILENAME
输出样例1:
FONTAMEIL
输入样例2:
fontname and filrname
输出样例2:
Not Found
代码部分:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
try (// TODO Auto-generated method stub
Scanner in = new Scanner(System.in)) {
String str = new String();
str = in.nextLine();
int i,count=0;
int[] a = new int[26];
for(i=0;i<str.length();i++)
{
if(str.charAt(i)>='A' && str.charAt(i)<='Z' && a[str.charAt(i)-'A'] == 0)
{
System.out.print(str.charAt(i));
a[str.charAt(i)-'A'] = 1;
count++;
}
}
if(count == 0)
System.out.println("Not Found");
in.close();
}
}
}
利用数组存放26个大写字母的flag,利用(对应字母的ASCII码 - A的ASCII码)作为数组下标( 正好实现地址从0到25,避免直接使用ASCII码造成空间的浪费 )。该思路有参考!
java刚入门小白,如有错误或优化欢迎大佬们的指点!