java万级字符串查重
2022-04-09阅读(103)

问:java查询一个字符串中重复的字符
                                            - 答:public static void main(String[] args) throws Exception {
 String a = "abcdaebijkd";
 String strRes = "";
 for(int i=0;i<a.length();i++){
 if(a.lastIndexOf(a.toCharArray()[i]) != i){
 strRes = strRes + a.toCharArray()[i];
 }
 }
 System.out.println(strRes);
 }
问:java怎么查询一个字符串中重复的字符,并且计算他出现的次数。
                                            - 答:把这个字符串按照这个字符分割,如果分出来有n段,就说明这个字符出现了n-1次
 string
 str="laslkav;lkjsn;skldnf;";
 string
 m=";";
 string[]
 r=str.split(m);
 system.out.println(r.length-1);
- 答:不明白
 试试这样
 str.replace("abcd","abcd|");
 str.split("\\|").length
问:JAVA字符串中去重复字符串
                                            - 答:最好用个特殊符号
 如教f练f教f练f裁f判f裁f判f裁f判f运f动f员f运f动f员
 这样就可以通过字符串的split的方法取出所有单个字符
 然后存在 HashSet里 再读出来就好了啊
- 答:用一个数组将字符串装起来,然后对字符串从第一个字符开始和之前的字符进行匹配检索,只要有相等的,就继续向后匹配,只要有两个字符及以上匹配相等,就删除当前已匹配小字符串就行了。
- 答:最简单的办法,扫描字符串,对每个字符,删除其后续出现,这样可以保证不会有重复的字符出现,那自然也不会有重复字符串出现。
 但是,从语义上说,会有问题
 比如“教练教授裁判”会变成“教练授裁判”
问:Java字符串去掉重复字符
                                            - 答:先把这些字符串用一个变量保存,然后转换成tochararray数组进行循环可以有contains进行判断是否有相同字符,用嵌套循环,随即改变数组值
- 答:通过Map集合应该可以吧:把字符串的每个字符作为Map集合的Key,放入Map集合,然后再把Key重新组合成新的字符串,有兴趣可以试一下啊,看看是否是你想要的结果。
问:求: 用 Java 正则去掉字符串中重复出现的字符!
                                            - 答:str = str.replaceAll("(?s)(.)(?=.*\\1)", "");
 -----------------------------------
 (?s)(.)(?=.*\1)
 (?s) 开启单行模式 DOTALL 让. 号匹配任意字符
 (.) 任意字符 并捕获在第一组
 (?=.*\1) 这是断言, 表示后面内容将是 任意个字符加上第一组所捕获的内容
 这样子,如果这整个式子匹配到,表示,第一个捕获组内容在字符串中,至少出现两次,替换为 "" 空串.
 进行 全局替换后, 整个字符串所出现的字符将不重复。
问:java 判断两个字符串有多少个字符相同
                                            - 答:写个方法:
 public char getSame(){
 String s1="12345";
 String s2="67821";
 char[] c1 = s1.toCharArray();
 int i=0;
 while(i<5){
 if(s2.indexOf(c1[i])!=-1){
- 答:给你个思路,把字符串转换成字符数组,数组元素逐一比对。应该有更好的办法。我们可以一同研究。
问:java判断一个字符串是否含有多个相同的字符
                                            - 答:String s = "Replace the string with yourself.";
 //根据要求,字符串有2个相同的字符,即判定为有相同字符
 public boolean haveSameChar(String s) {
 for (int i=0;i<s.length();i++) {
 char ch = s.charAt(i);
 String s1 = s.substring(i+1);//i之后的字符串
 if (s1.indexOf(ch)>=0) {
 return true;
 }
 }
 return false;
 }
- 答:boolean a = s.contains("??");
问:java比较字符串相同,如果相同就输出相同的字符串,如果用java写,在线等???
                                            - 答:...你真的是在问这个问题?
 例:
 if(“str”.equals("str")){
 System.out.println("str");
 }
- 答:是字符串全部相同?
 String a="test";
 String b="Test";
 if(a!=""&&a.equals(b)){
 System.out.println(a);
 }
 if(a==""&&b==""){
 System.out.println(a);
 }
- 答:用字符串的equals方法 eg:String str = "";
 String str1 = "123";
 if(str.equals(str1)){
 System.out.println(str1);
 }
- 答:Test{
 public Test(){}
 public static void main(String[] args){
 String s1 ="aa";
 String s2 = "bb";
 if s1.equals(s2)
 System.out.println(s1);
 }
 }
- 答:String a="abc";
 String b="abc";
 String isequals(String a,String b){
 if(a!=null){
 if(a.equals(b)){
 return a;
 }
 }
 return null;
 }
- 答:public class Test {
 public static void main(String[] args) {
 String a = "123";
 String b = "123";
 if(a.equals(b)){
 System.out.println(a+"="+b);
 }
 }
 }
- 答:String a="qwe";
 String b="qwe";
 if(a.equals(b)){
 System.out.println(a);
 }
- 答:代码如下:
 public static void main(String [] args){
 String a = "xxxxx";
 String b = "xxxxx";
 printSame(a,b);
 }
 //比较并输出想同的字符串
 public static void printSame(String a ,String b){
 if(a != null && a.equals(b)){
 system.out.println("参数a和参数b相同,值等于"+a);
 }
 }
- 答:Scanner scan = new Scanner(System.in);
 System.out.println("请输入第一个字符");
 String yn=scan.next();
 System.out.println("请输入第一个字符");
 String yn2=scan.next();
 if(yn2.equals(yn)){
 System.out.println(yn2);
 }else{
 System.out.println("输入的两个字符不相等");
 }