题目:
给定一个长度为n的字符串,字符串中只包含大小写字母。请你返回该字符串拥有那些字符。并将他们按照出现的先后顺序拼接成一个新的字符串。
备注:
在统计字符时,需要区分大小写。
输入描述:
每组数据输入一个字符串,字符串最大长度为100,且只包含字母,不可能为空串,区分大小写。
输出描述:
每组数据一行,按字符原有的字符顺序,输出字符集合,即重复出现并靠后的字母不输出。
示例:
输入:abcqweracb
输出:abcqwer
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);//①
while (sc.hasNextLine()){//②
String str =sc.nextLine();
System.out.println(fun(str));
}
}
private static String fun(String str){
boolean[] flg=new boolean[127];
StringBuilder stringBuilder=new StringBuilder();//③
for (int i=0;i<str.length();i++){
char ch =str.charAt(i);//④
if (flg[ch]==false){
stringBuilder.append(ch);
flg[ch]=true;//⑤
}
}
return stringBuilder.toString();//⑥
}
}
运行结果:
注释:
①、该语句用来表示输入
②、hasNextLine()函数通常用于处理文本文件流或字符串流中。它的作用是在遍历内容是检查是否还有下一行数据可供读取。当这个函数返回true时,意味着可以安全的调用nextLine()函数获取下一行;如果返回false,则表示已经达到了文件的结尾或者流中没有更多的行。
③、StringBulider是Java中的一个字符串构建工具,用于动态的创建和修改字符串。比String效率更高,因为他是在原地进行修改,不会生成新的字符串对象。
StringBulider提供了多种方便的方法来添加、插入、删除、和替换字符。
·append():追加字符串到原有内容后面。
·insert(index,str):在指定位置插入字符串。
·delete(startIndex,endIndex):删除从startIndex开始到endIndex结束的字符。
·replace(oldchar,newchar):将某个字符替换成另一个字符。
④、charAt(i)是用于获取字符串用特定位置字符的方法。
⑤、采用做标记的方法判断一个字符是否重复出现。
⑥、stringBuilder.toString()用于将stringBuilder对象转换为String类型。