360网站建设官网,做网站要用那些软件,素材网站pinterest,服务比较好的网页传奇字符集合#xff01;#xff01;#xff01; 描述 输入一个字符串#xff0c;求出该字符串包含的字符集合#xff0c;按照字母输入的顺序输出。 数据范围#xff1a;输入的字符串长度满足 1 \le n \le 100 \1≤n≤100 #xff0c;且只包含大小写字母#xff0c;区分大小… 字符集合 描述 输入一个字符串求出该字符串包含的字符集合按照字母输入的顺序输出。 数据范围输入的字符串长度满足 1 \le n \le 100 \1≤n≤100 且只包含大小写字母区分大小写。 本题有多组输入 输入描述 每组数据输入一个字符串字符串最大长度为100且只包含字母不可能为空串区分大小写。 输出描述 每组数据一行按字符串原有的字符顺序输出字符集合即重复出现并靠后的字母不输出。 示例1 输入 abcqweracb 输出 abcqwer 示例2 输入 aaa 输出 a 思路 以abcqweracb 分析 首先我们要从一个字符串中获取到每个字符那么需要遍历字符串拿到每个字符
for(int i0;istr.length();i){char chstr.charAt(i);
}因为相同的字符只输出一次那么我们最好标记一下比如当’a’第一次出现时定义一个变量int x让x1当’a’第2次第三次…出现时我们让这个变量x0。那么对定义的变量有什么要求 其实定义的该变量最好是boolean类型因为boolean类型默认值false,也就是当’a’字符没有出现过时该变量为false,比较符合大多数人的逻辑当’a’出现时把定义的变量赋值为true; 在每次遍历一个字符时判断一下如果boolean xfalse,说明没输出过字符’a’那么把字符’a’输出并把x变量赋值为true;那么下次判断的是时候打印语句就不会执行。 因为输入的字符有许多种不可能一种字符定义一个变量此时我们可以定义一个boolean数组当字符为’a’时根据ASCII码值字符’a’97,对应该数组下标97字符为’b’时对应数组下标98 综上遍历字符串拿到每个字符然后根据这个字符的ASCII值对应一个boolean数组的下标通过下边就可以唯一对应一个字符当某个字符没出现时默认为false当 该字符第一次出现时因为默认值为false,进出判断语句然后让该字符对应数组的赋值为true;下次该字符再次出现时再也不会进入判断语句。
import java.util.Scanner;
public class Main {public static void main(String[] args) {Scanner in new Scanner(System.in);while (in.hasNextLine()) { // 注意 while 处理多个 caseString strin.nextLine();StringBuilder stringBuildernew StringBuilder();boolean[] flgsnew boolean[127];for(int i0;istr.length();i){char chstr.charAt(i);if(flgs[ch]false){ stringBuilder.append(ch);//如果某字符第一次出现就把//该字符连接到 stringBuilder便于后续直接输出flgs[ch]true;}}System.out.println(stringBuilder);}}
}