2014-01-27 48 views
-1

所以我有一個名爲indexOf的方法,通過在main中指定一個字符串,我可以讓程序打印出數組中字符串的索引。但是,我將如何去簡單地創建一個可以打印出數組的第一個索引的方法,而不需要指定一個字符串呢?如果索引不存在,我希望它返回-1。返回給定數組的第一個索引

public static void main(String[] args) 
{ 

    String[] v = new String[1]; 
    v[0] = "test"; 

    String s = "t"; 

    indexOf(v, s); 
} 

public static int indexOf(String[] v, String s) 
{  
    int i = v[0].indexOf(s); 
    System.out.println 
     ("Index of the first string in the first array: " + i); 

    return -1;          
    } 
} 
+7

目前尚不清楚你想要做什麼。數組的第一個索引始終爲'0'(如果數組沒有元素,則不確定)。 – David

+0

現在,我打算打印出0,因爲String s =「t」;是第一個字符串,它的索引爲0.我想要的是程序實際打印出「t」並基本識別第一個索引並讓我知道它是什麼。 – user3071133

+0

您從不循環輸入數組。你也永遠不會檢查輸入數組的邊界。你對函數的返回值什麼都不做。 – crush

回答

0

您的問題可以通過兩種方式閱讀。如果你希望能夠只返回數組的第一個索引,然後執行以下操作:

if(v.length > 0)//check length 
    return 0;//return first position 
return -1;//return empty string meaning there wasnt a first position. 

但是,您可能意味着要問到陣列v中返回一個字符串s首例。那麼在這種情況下,請執行下列操作:

//assuming v and s are not null or do not contain null values 
for(int i = 0; i < v.length; i++){//loop through the array v 
    if(v[i].equals(s){//does the current value of v equal to the String s? 
     return i;//found string! 
    } 
} 
return -1;//didnt find the string 

你像是新java。我強烈建議你閱讀這兩種來源:

Java: Array with loop

How do I compare strings in Java?

+0

我真的有點困惑,但這個答案幫助我理解它。我正在尋求你給出的第一個答案。基本上,只要字符串存在,索引總是0,否則我希望返回-1。 – user3071133

0

數組的第一個索引始終是0.所以你只需要return v.length > 0 ? 0 : -1

相關問題