chen_xiao_ma 2021-08-07 22:31 采纳率: 0%
浏览 41

java判断集合关系

要求是要键盘输进一些数字元素使其作为有序偶进行存储,我是用HashMap来做的,但是做完之后就发现前三个输进的数字是无效的,而且每输进一个有序偶就会要一个数字或者任意键用来分隔。
有什么办法可以避免掉这些操作直接输入数字然后变成一个有序偶集合吗?

img

  • 写回答

1条回答 默认 最新

  • fire_at_will 2021-08-08 23:29
    关注
    
    
    import java.util.Scanner;
    import java.util.HashMap;
    
    class Main {
    
    public int theNumberOfChar(String obj,char Co)
    {
      int d=0;
      for(int i=0;i<obj.length();i++)
      {
        if(obj.charAt(i)==Co)
        {
          d++;
        }
      }
      return d;
    }
    
    public int[] getNumberTwo(String Ssa, String Ssb, String number)
    {
      int[] result={0,0};
      int a=number.lastIndexOf(Ssa);
      int c=number.lastIndexOf(Ssb);
      String sb="1";
      String sa=number.substring(0,a);
      if(a+1==c)
      {
        if(Ssa=="-")
        {sb="-1";}
        else
        {sb="1";}
        }
      else
      {sb=number.substring(a,c);}
      a=Integer.parseInt(sa);
      c=Integer.parseInt(sb);
      result[0]=a;
      result[1]=c;
      return result;
    }
      public static void main(String[] args) {
        
        HashMap<Integer,Integer>map=new HashMap<Integer,Integer>();
        Main b=new Main();
        int DataNum=1;
        System.out.println("please enter the number of the data");
        Scanner Nummyobj=new Scanner(System.in);
        String SpNum=Nummyobj.nextLine();
        DataNum=Integer.parseInt(SpNum);
        int[][] ResultAll=new int[DataNum][2];
        int Spb=0;
        while(Spb<DataNum)
      {
        System.out.println("please enter a data");
        Scanner myobj=new Scanner(System.in);
        String number=myobj.nextLine();
        if(b.theNumberOfChar(number,'+')==1&&b.theNumberOfChar(number,'i')==1&&number.endsWith("i"))
        {
            ResultAll[Spb]=b.getNumberTwo("+","i",number);
        }
        else if(b.theNumberOfChar(number,'-')>0&&b.theNumberOfChar(number,'i')==1&&number.endsWith("i")&&number.lastIndexOf("-")!=0)
        {
            ResultAll[Spb]=b.getNumberTwo("-","i",number);
        }
        else if(number.lastIndexOf("-")==0&&number.endsWith("i")&&b.theNumberOfChar(number,'i')==1&&b.theNumberOfChar(number,'-')==1)
          {
            ResultAll[Spb][0]=0;
            if(number.lastIndexOf("-")+1==number.lastIndexOf("i"))
            {ResultAll[Spb][1]=-1;}
            else{
            String sa=number.substring(0,number.indexOf("i"));
            ResultAll[Spb][1]=Integer.parseInt(sa);}
          }
          else if((b.theNumberOfChar(number,'-')==0&&b.theNumberOfChar(number,'+')==0)&&number.endsWith("i")&&b.theNumberOfChar(number,'i')==1)
          {
            ResultAll[Spb][0]=0;
            if(number.indexOf("i")==0)
            {ResultAll[Spb][1]=1;}
            else{
            String sa=number.substring(0,number.indexOf("i"));
            ResultAll[Spb][1]=Integer.parseInt(sa);
            }
            
          }
          else if(b.theNumberOfChar(number,'i')==0)
          {
            ResultAll[Spb][1]=0;
            ResultAll[Spb][0]=Integer.parseInt(number);;
          }
        Spb++;
      }
      for(Spb=0;Spb<DataNum;Spb++){
        System.out.print("{"+ResultAll[Spb][0]+","+ResultAll[Spb][1]+"}\n");
      }
    
        
      }
    }
    

    img

    img

    如果我的理解没错的话,有序偶实际上表达的是复数,我试了你的HashMap方式,由于key存储实数部分,而value作为虚数部分,会造成数据覆盖。所以我换了二维数组存储有序偶,代码我贴了,有部分逻辑判断我没写,不过,影响不大。

    评论

报告相同问题?

问题事件

  • 创建了问题 8月7日

悬赏问题

  • ¥15 有人知道怎么在R语言里下载Git上的miceco这个包吗
  • ¥15 GPT写作提示指令词
  • ¥20 如何在cst中建立这种螺旋扇叶结构
  • ¥20 根据动态演化博弈支付矩阵完成复制动态方程求解和演化相图分析等
  • ¥20 关于DAC输出1.000V对分辨率和精度的要求
  • ¥20 想写一个文件管理器,加载全部子文件夹后,要一级一级返回
  • ¥15 华为超融合部署环境下RedHat虚拟机分区扩容问题
  • ¥15 哪位能做百度地图导航触点播报?
  • ¥15 请问GPT语言模型怎么训练?
  • ¥15 已知平面坐标系(非直角坐标系)内三个点的坐标,反求两坐标轴的夹角