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("");
}
}
}