您的位置:首页 > 编程语言 > Java开发

java删除重复字符串

2019-05-14 00:52 183 查看

1. 删除重复字符串,只包含'a-z'

method 1

[code]import java.util.*;
import java.io.*;
public class Text{
public static void main(String[] args)throws IOException {

InputStreamReader input = new InputStreamReader(System.in);
BufferedReader bf = new BufferedReader(input);
String s = bf.readLine();
char[] c = s.toCharArray();
int[] flags = new int[26];
StringBuffer sb = new StringBuffer();
for(int i = 0; i < c.length; i++){
if(flags[c[i]-'a'] == 0){
flags[c[i] -'a'] = 1;
sb.append(c[i]) ;
}
}
System.out.println(sb);
}
}

 

method 2

不管有无限制是字母

[code]import java.util.*;
import java.io.*;
public class Test{
public static void main(String[] args)throws IOException {

InputStreamReader input = new InputStreamReader(System.in);
BufferedReader bf = new BufferedReader(input);
String s = bf.readLine();
ArrayList <String> list = new ArrayList<>();
for(int i = 0; i < s.length(); i++){
String a = s.substring(i,i+1);
if(!list.contains(a)){
list.add(a);
}
}
String res = "";
for(String ab : list){
res += ab;
}
System.out.println(res);
}
}

小总结:感觉好久没做题,牛客网页面编辑真的不好打,特别联想功能太难受了=。=

API文档说明:InputStreamReader类是从字节流到字符流的桥接器:它使用指定的字符集读取字节并将它们解码为字符。 它使用的字符集可以通过名称指定,也可以明确指定,或者可以接受平台的默认字符集。每次调用一个InputStreamReader的read()方法都可能导致从底层字节输入流中读取一个或多个字节。 为了实现字节到字符的有效转换,可以从基础流中提取比满足当前读取操作所需的更多字节。为了获得最高效率,请考虑在BufferedReader中包装InputStreamReader
引用自:https://blog.csdn.net/ai_bao_zi/article/details/81133476

[code]InputStreamReader input = new InputStreamReader(System.in);
BufferedReader bf  = new BufferedReader(input);

or

BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));

          关于字符串与各种数组的简单整理

[code]//String s 的length
s.length();

//获取string的某个字符
String a = s.substring(i,i+1);

//获取某个字符,为char,索引范围为从 0 到 length() - 1
char a = s.charAt(i);

String string = "aaa456ac";
string.indexOf("b");// indexOf(String str); 返回结果:-1,"b"不存在
string.indexOf("a",3);   ////indexOf(String str, int fromIndex); 返回结果:6  从第四个字符位置开始往后继续查找,包含当前位置
string.indexOf(99); //(与之前的差别:上面的参数是 String 类型,下面的参数是 int 类型)参考数据:a-97,b-98,c-99, indexOf(int ch);返回结果:7
string.indexOf('c'); //indexOf(int ch);返回结果:7
string.indexOf(97,3); //indexOf(int ch, int fromIndex); 返回结果:6 从fromIndex查找ch,这个是字符型变量,不是字符串。字符a对应的数字就是97。
string.indexOf('a',3);//indexOf(int ch, int fromIndex); 返回结果:6

//char[] chs,
chs.length;

//int[] in的length
in.length

//ArrayList array<T> = new ArrayList<>();
array.size()

method 3使用hashmap or hashset

两者区别:http://www.importnew.com/6931.html

待更---------------------------------------------------------------------------------------------------------

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: