在if语句中使用数组

时间:2013-06-23 16:52:26

标签: java arrays if-statement

如果是我的程序,我想在条件中使用数组,但是我在实现它时遇到了问题。

我有一个数组:

//I want to put my condition in array column 3 (in title)
Data[] hotel = {
        new Data(-6.8851995, 108.4978142, "Grage Sangkan Hotel & Spa",
                "Jl. Raya Sangkanhurip No.1 Desa Sangkanhurip"),
        new Data(-6.879592, 108.513353, "Prima Hotel Sangkanhurip ",
                "Jl. Panawuwan No.121 Kec. Cigandamekar "),
        new Data(-6.883889, 108.500000, "Tirta Sanita Spa Resort ",
                "Jl.Panawuwan No.98 Kec.Cigandamekar")
}

我有条件:

//my condition equals array column 3 (in title)
if (v.getTitle().equals(hotel[3] ? ??)){  // in here I don't know what can I do 
    tempat = new Intent(Peta.this, KetWisata.class);
    // TODO Auto-generated method stub
    if (v.getTitle().contains("Wisata Cibulan")) {
        tampil = "wis_cibulan";
    }
    if (v.getTitle().contains("Linggarjati Indah")) {
        tampil = "wis_linggarjati";
    }
    if (v.getTitle().contains("Balong Dalem")) {
        tampil = "wis_balongdalem";
    }
} else {
    // ...
}

3 个答案:

答案 0 :(得分:0)

使用v.getTitle()v中获取title元素的方法相同,您需要使用类似的方法从数组中的Data元素中获取标题值。

假设v也是Data类型,那么您要求的代码是......

if ( v.getTitle().equals( hotel[3].getTitle() )) {
    // Your code                  -----------
} 

这样你就可以测试这两个标题是否相等。只需将酒店[3]视为Data类型的任何其他变量。

答案 1 :(得分:0)

首先,数组从零开始。长度为3的数组的最大可索引元素为2 - 任何更高的数据都会得到ArrayIndexOutOfBoundsException

第二,这一行:

if (v.getTitle().equals(hotel[3] ? ??)

不正确,即使问号不存在也无效。原因是:   hotel的类型为Data,我们只能假设getTitle()返回String。您无法将StringData进行比较。

你想要的是这样的东西:

if (v.getTitle().equals(hotel[2].getTitle())

答案 2 :(得分:-1)

好的,你可以创造一个类似的东西:

class RandomStuffs {
public void ArrayEquals(ArrayList Array , string SearchData){
int I = 0;
int T = 0;
Boolean Continue = false;
for(I = 0;I < Array.length ; I ++){
for(T = 0;T <Array[i].length;T ++){
if(Array[I][T] == SearchData ){
Continue = true;
break;
}
}
if(Continue == true){
return true;
}else {
return false;
}
}
}

并称之为:

Class Main {
public static void main(String args[]){
RandomStuffs Class = new RandomStuffs();
if(Class.ArrayEquals(hotel , "Wisata Subilian"){
//Code To Execute
}else {
//Error Handler Or Another Block
}
}
}

此循环检查多维数组是否包含字符串
如果这不是你想要的那么你可以玩一点循环,它会正常工作。 或者告诉我,我会回答你 在你的问题之间不清楚你没有真正指定你的内容