Java 通过输入数组值了解类的步骤

Java 通过输入数组值了解类的步骤,java,Java,我在java中的两个不同类中各有一个字符串数组 当我从任何数组中输入一个值时,我希望得到该数组值所属的类 那么,如何通过输入数组值来了解类呢 例如: import java.io.*; 班车{ 公共静态void main(字符串args[])引发异常{ System.out.println(“汽车的部件如下”); 对于(int i=1;i而言,使其正常工作的最小更改如下。要点: Engine和bonet的内容属于这些类的实例,而不属于car 大小为5的数组的标记为0,1,2,3,4,而不是1,

我在java中的两个不同类中各有一个字符串数组

当我从任何数组中输入一个值时,我希望得到该数组值所属的类

那么,如何通过输入数组值来了解类呢

例如:

import java.io.*;
班车{
公共静态void main(字符串args[])引发异常{
System.out.println(“汽车的部件如下”);

对于(int i=1;i而言,使其正常工作的最小更改如下。要点:

  • Engine和bonet的内容属于这些类的实例,而不属于car
  • 大小为5的数组的标记为0,1,2,3,4,而不是1,2,3,4,5
  • 在循环中遍历数组时,不要硬编码数组大小,而应使用
    .length

    import java.io.*;
    public class Car {
    
        public static void main(String args[]) throws Exception {
            System.out.println("The parts of a car are as follows");
    
            Engine engine=new Engine(); //we must create any components we have
            Bonet bonet=new Bonet(); //we must create any components we have
    
            for (int i = 0; i <bonet.str.length; i++) { 
                System.out.println(i +":"+ bonet.str[i]);
            }
            for (int j = 0; j < engine.ch.length; j++) {
                System.out.println(j +":"+ engine.ch[j]);
            }
            DataInputStream dis = new DataInputStream(System.in);
            System.out.println("Choose and enter any part name to group it under following                       categories:" + "\n" + "Engine" + "\t" + "\t" + "Bonet");
            String part = dis.readLine();
    
            boolean isInEngine=false; //assume isn't in engine, try to prove otherwise
    
            for(int i=0;i<engine.ch.length;i++){
                if (engine.ch[i].equals(part)){
                    isInEngine=true;
                }
            }
    
            if (isInEngine==true) {
                System.out.println("Your choosen part is " + part + " and it comes under Engine category");
            } else {
                System.out.println("Your choosen part is " + part + " and it comes under Bonet category");
            }
        }
    }
    
    class Engine {
        String ch[] = {"asd", "fgh"};
    }
    
    class Bonet {
        String str[] = {"qwe", "rty"};
    }
    
    import java.io.*;
    公车{
    公共静态void main(字符串args[])引发异常{
    System.out.println(“汽车的部件如下”);
    Engine=new Engine();//我们必须创建现有的任何组件
    Bonet-Bonet=new-Bonet();//我们必须创建我们所有的组件
    
    对于(int i=0;i而言,使其工作的最小更改如下。要点:

    • Engine和bonet的内容属于这些类的实例,而不属于car
    • 大小为5的数组的标记为0,1,2,3,4,而不是1,2,3,4,5
    • 在循环中遍历数组时,不要硬编码数组大小,而应使用
      .length

      import java.io.*;
      public class Car {
      
          public static void main(String args[]) throws Exception {
              System.out.println("The parts of a car are as follows");
      
              Engine engine=new Engine(); //we must create any components we have
              Bonet bonet=new Bonet(); //we must create any components we have
      
              for (int i = 0; i <bonet.str.length; i++) { 
                  System.out.println(i +":"+ bonet.str[i]);
              }
              for (int j = 0; j < engine.ch.length; j++) {
                  System.out.println(j +":"+ engine.ch[j]);
              }
              DataInputStream dis = new DataInputStream(System.in);
              System.out.println("Choose and enter any part name to group it under following                       categories:" + "\n" + "Engine" + "\t" + "\t" + "Bonet");
              String part = dis.readLine();
      
              boolean isInEngine=false; //assume isn't in engine, try to prove otherwise
      
              for(int i=0;i<engine.ch.length;i++){
                  if (engine.ch[i].equals(part)){
                      isInEngine=true;
                  }
              }
      
              if (isInEngine==true) {
                  System.out.println("Your choosen part is " + part + " and it comes under Engine category");
              } else {
                  System.out.println("Your choosen part is " + part + " and it comes under Bonet category");
              }
          }
      }
      
      class Engine {
          String ch[] = {"asd", "fgh"};
      }
      
      class Bonet {
          String str[] = {"qwe", "rty"};
      }
      
      import java.io.*;
      公车{
      公共静态void main(字符串args[])引发异常{
      System.out.println(“汽车的部件如下”);
      Engine=new Engine();//我们必须创建现有的任何组件
      Bonet-Bonet=new-Bonet();//我们必须创建我们所有的组件
      
      对于(int i=0;i我不会给你完整的代码,因为我相信自己创建它会对你更好。相反,这里有一些你需要考虑的事实:

    • 若要访问存储在其他类中的数组,您必须创建该类的实例

      Engine engine = new Engine();
      engine.ch[0];
      
      或者在您的情况下,您可能应该使您的数组
      为静态

      class Engine {
          static String ch[] = { "asd", "fgh" };
      }
      
      并通过类名
      Engine.ch[0]

    • 数组的索引从
      0
      arraySize-1

    • 要获得数组的大小,您可以使用它的field
      length
      ,然后像这样使用它

      for(int i=0; i<Bonet.str.length; i++){
          System.out.println(i+Bonet.str[i]);
      }
      
    • 要检查某个对象是否存储在数组中,您必须迭代该数组的所有元素,并将它们与您的对象进行比较。还要记住,要比较字符串对象,您应该使用
      equals
      方法,如
      part.equals(otherString)

      但为了减少代码,您可以将数组包装到
      List
      中,并使用其
      contains(Object o)
      方法。要将数组包装到List中,您可以使用
      java.util.Arrays
      类中的
      asList
      方法

      if(Arrays.asList(Engine.ch).contains(part)){...
      

    • 我不会给出完整的代码,因为我相信自己创建代码会更好。相反,这里有一些事实需要考虑:

    • 若要访问存储在其他类中的数组,您必须创建该类的实例

      Engine engine = new Engine();
      engine.ch[0];
      
      或者在您的情况下,您可能应该使您的数组
      为静态

      class Engine {
          static String ch[] = { "asd", "fgh" };
      }
      
      并通过类名
      Engine.ch[0]

    • 数组的索引从
      0
      arraySize-1

    • 要获得数组的大小,您可以使用它的field
      length
      ,然后像这样使用它

      for(int i=0; i<Bonet.str.length; i++){
          System.out.println(i+Bonet.str[i]);
      }
      
    • 要检查某个对象是否存储在数组中,您必须迭代该数组的所有元素,并将它们与您的对象进行比较。还要记住,要比较字符串对象,您应该使用
      equals
      方法,如
      part.equals(otherString)

      但为了减少代码,您可以将数组包装到
      List
      中,并使用其
      contains(Object o)
      方法。要将数组包装到List中,您可以使用
      java.util.Arrays
      类中的
      asList
      方法

      if(Arrays.asList(Engine.ch).contains(part)){...
      

    • 你能把这句话换成有意义的话吗?我不知道如何理解你的问题。你能添加一些输入和预期输出的例子吗?人们还没有投票来结束这个问题。OP是新来的,所以,给他一个机会,用投票来等待,比如说从上次更新/编辑开始10分钟。@user2513831不要对结束的问题感到气馁,如果您快速更新您的问题并添加更多详细信息,它总是可以重新打开。数组是静态的吗?这是有意义的,因为它们似乎是类的属性,而不是单个实例。您能否将其重新表述为有意义的内容?我不确定如何理解您的问题。您可以添加一些示例吗有输入和预期的输出?人们还没有投票来结束这个问题。OP是新来的,给他一个机会,等待投票,比如说距离上次更新/编辑10分钟。@user2513831不要对已结束的问题感到气馁,如果你快速更新你的问题并添加更多的细节,它总是可以重新打开。数组是静态的吗?这会使sense,因为它们似乎是类的属性,而不是单个实例。非常感谢。它现在正在工作。我很感激你如何让像我这样的初学者理解事物。@user2513831真棒,请注意,尽管我发布的代码并不好,只是入门的最低要求。我强烈建议你看看ca在我的笔记部分,我会记住你在最后做的笔记。它会很有用。谢谢。非常感谢。它现在正在工作。我很感激你如何让像我这样的初学者理解事情。@user2513831真棒,请注意,尽管我发布的代码不好,只是入门的最低要求。我强烈建议你看起来像c