java删除重复字符串

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

method 1

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

不管有无限制是字母

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

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

or

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

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

//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

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

猜你喜欢

转载自blog.csdn.net/weixin_39296576/article/details/90183919