thyx 发表于 2017-1-26 00:34:15

怎么去除对子

本帖最后由 thyx 于 2017-1-26 00:37 编辑

我现在有一个string[] A={"1q","2w","3e","3r","5t","4y","7u","8i","8o","1p"}
排完序后得到 {"1q","1p","2w","3e","3r","4y","5t","7u","8i","8o"}
现在我用 toCharArray

for(int i=0;i<A.length-1;i++){
      char[] charArray = A.toCharArray();
      System.out.println(Arrays.toString(charArray));
结果是这个



...
...
...
...
现在我想要把第一位数字相同的都去掉 我想过用 if(xx.charAt(0)==xx.charAt(0)),但是名字不知道,所以该怎么写。。。还有什么其他办法吗

我看到别人有用hashmap但是没学过。。。
结果应该是 A="2w","4y","5t","7u"

零度非安全 发表于 2017-1-26 15:08:02


import java.util.Arrays;

public class test{   
    /*
    isEqual()这个函数是判断两个字符串中是否有相等的字符
    */
    public static boolean isEqual(String a,String b){
      char[] char1 = a.toCharArray();
      char[] char2 = b.toCharArray();
      for(int i = 0;i < char1.length;i++){
            for(int j = 0;j < char2.length;j++){
                if(char1 == char2){
                  return true;
                }
            }
      }
      return false;
    }   
    /*
    版主在这里设置了一个临时boolean型判断变量
    这个变量是用来判断设置具有相同子字符的字符串为空字符串的依据
    我不用很复杂的方法,用你能看得懂的方法实现,虽然效率不高
    但若要效率高的,同样也能写出,不过要调用好多类
    如果我这样做了,你肯定会看不懂,你自己也说了HashMap没学过
    */
    public static void main(String[] args){
      String[] A = {"1q","2w","3e","3r","5t","4y","7u","8i","8o","1p"};
      boolean TempJudge = false;
      for(int i = 0;i < A.length;i++){
            TempJudge = false;
            for(int j = i + 1;j < A.length;j++){
                if(isEqual(A,A) == true){
                  TempJudge = true;
                  A = "";
                }
            }
            if(TempJudge){
                A = "";
            }
      }
      for(int i = 0;i < A.length;i++){
            if(A != ""){
                System.out.print(A + " ");
            }
      }      
    }
}

运行截图:

零度非安全 发表于 2017-1-26 15:11:11

如果您的【问题求助】得到满意的解答,请自行将分类修改为【已经解决】

谢谢合作!!!

零度非安全 发表于 2017-1-26 15:18:46

同样又测试了一遍

页: [1]
查看完整版本: 怎么去除对子