Java 如何知道数组是否包含给定的值

Java 如何知道数组是否包含给定的值,java,arrays,Java,Arrays,您好,我正在尝试弄清楚数组是如何工作的,现在我创建了一个类,在类中查找整数,但我想我已经做了一些工作。。尤其是我认为转换方法是错误的。。如果数组索引包含该值,它必须在数组中搜索,如果是,则打印出来,但它不起作用。有人能解释一下逻辑和如何解决它吗?(如有可能,请举例说明) 提前谢谢!下面您可以看到我的代码: package h05UitgeschrevenGetal; import java.awt.event.*; import java.util.Random; import javax.

您好,我正在尝试弄清楚数组是如何工作的,现在我创建了一个类,在类中查找整数,但我想我已经做了一些工作。。尤其是我认为转换方法是错误的。。如果数组索引包含该值,它必须在数组中搜索,如果是,则打印出来,但它不起作用。有人能解释一下逻辑和如何解决它吗?(如有可能,请举例说明)

提前谢谢!下面您可以看到我的代码:

package h05UitgeschrevenGetal;

import java.awt.event.*;
import java.util.Random;

import javax.swing.*;

public class GetalConverter extends JPanel implements ActionListener {

private JLabel getal;
private JTextField invoer, uitvoer;
private int invoerWaarde;
private JButton converteer;

String[] klein = new String[20];
String[] groot = new String[10];

public GetalConverter() {

    getal = new JLabel("geef een geheel getal");
    add(getal);

    invoer = new JTextField(7);
    invoer.addActionListener(this);
    add(invoer);

    converteer = new JButton("In woorden");
    converteer.addActionListener(this);
    add(converteer);

    uitvoer = new JTextField(7);
    uitvoer.setEditable(false);
    add(uitvoer);

    klein[0] = "nul";
    klein[1] = "een";
    klein[2] = "twee";
    klein[3] = "drie";
    klein[4] = "vier";
    klein[5] = "vijf";
    klein[6] = "zes";
    klein[7] = "zeven";
    klein[8] = "acht";
    klein[9] = "negen";
    klein[10] = "tien";
    klein[11] = "elf";
    klein[12] = "twaalf";
    klein[13] = "dertien";
    klein[14] = "veertien";
    klein[15] = "vijftien";
    klein[16] = "zestien";
    klein[17] = "zeventien";
    klein[18] = "achtien";
    klein[19] = "negentien";

    groot[1] = "tien";
    groot[2] = "twintig";
    groot[3] = "dertig";
    groot[4] = "veertig";
    groot[5] = "vijftig";
    groot[6] = "zestig";
    groot[7] = "zeventig";
    groot[8] = "tachtig";
    groot[9] = "negentig";

}

public void setValue(int val) {

     invoerWaarde = val;
     //System.out.println(invoerWaarde);
}

public int getValue() {

    return invoerWaarde;

}

public void convert() {

    // here comes the converting code

}

@Override
public void actionPerformed(ActionEvent e) {

    setValue(Integer.parseInt(invoer.getText()));
    convert();
    //System.out.println(invoerWaarde);


}

}

您已将数组定义为:-

String[] strings = new String[klein];
现在,当您调用
contains
方法时:-

Arrays.asList(strings).contains(waar)
实际上,您正在检查类型为
String
ArrayList
中是否包含整数。因为,
waar
是在
convert
方法中传递的整数。您希望它如何返回
true

如果数组索引包含该值,它必须在数组中搜索

对于这种情况,您需要将该
传递给
convert
方法。你在传递
索引

我猜你想要这样的东西:-

public void convert(String value) {

    for (int i = 0; i < strings.length; i++) {
        if (strings[i].equals(value)) {

            System.out.println("Value: " + strings[i]);
            System.out.println("Index: " + i);
        }
    }

}
public void转换(字符串值){
for(int i=0;i
如果你正在寻找索引-

public void convert(Integer waar) {
    for(int index=0;index<strs.length;index++){
       if(strs[index].equals(String.valueOf(waar))){
          System.out.println("index -> "+index);
       }
    }
}
public void convert(整数waar){

对于(int index=0;index我知道一个事实,根据上面给出的代码,您的程序只能在0到99的范围内工作。 请尝试以下代码:

public void Convert()
{
   int grootVal, kleinVal;
   if(invoerWaarde < 100){
      //ok, possibility of finding it in the array.
      grootVal = (int)Math.floor(invoerWaarde / 10.0)
      kleinVal = invoerWaarde - (grootVal * 10);
      try{
         String valueString = groot[grootVal] + " " + klein[kleinVal];
         System.out.println(valueString);
      }catch(ArrayOutOfBoundsException aoobe){
          System.out.println("");
      }
   }
}
public void Convert()
{
克林瓦尔格罗特瓦尔国际酒店;
如果(发票金额<100){
//好的,在数组中找到它的可能性。
grootVal=(int)数学楼层(invoerWaarde/10.0)
kleinVal=invowerwaarde-(grootVal*10);
试一试{
字符串值String=groot[grootVal]+“”+klein[kleinVal];
System.out.println(valueString);
}捕捉(BoundsException aoobe的排列){
System.out.println(“”);
}
}
}

ye我已经想到了类似的东西……但我怎么能看“索引”?@Reshad.但是您正在传递一个
整数
值。您要获取谁的索引?不,这是不可能的,因为convert的值是整数..不是字符串我正在尝试创建一个将1转换为1,将200转换为200的字符串example@Reshad.好的。那么你如何比较1和
1
?这是我的问题lem..但我刚才注意到的另一个问题是我的数组必须像写出来的一样(至少是值),因为现在我有一个循环,每次增加1..但是没有任何东西像值[1]=“1”那样进入值中所以我必须把它写出来吗?啊,第二个例子就是我需要的!你能意外地知道找到索引时如何打印索引值吗?打印你可以放入
Sysout(i)的索引值
它适用于大多数值,但并非适用于所有值。不幸的是,经过一点修改,我希望它会!10和10以下,我认为它需要一些if语句,因为它表示0,即使0在该数字中不存在,例如5变为零五,而不是仅仅五等。当0不存在时,什么会变为0?
public void Convert()
{
   int grootVal, kleinVal;
   if(invoerWaarde < 100){
      //ok, possibility of finding it in the array.
      grootVal = (int)Math.floor(invoerWaarde / 10.0)
      kleinVal = invoerWaarde - (grootVal * 10);
      try{
         String valueString = groot[grootVal] + " " + klein[kleinVal];
         System.out.println(valueString);
      }catch(ArrayOutOfBoundsException aoobe){
          System.out.println("");
      }
   }
}