2017-02-27 36 views
-5

我正在處理一個賦值,它讓我們填寫8種不同的方法。對於我正在處理的特定方法,我必須查看該字符串是否包含字母'G'並返回。我想出了一些我認爲可行的事情,但事實並非如此。此外,這是一個基本的Java類,我很新,所以請解釋你做了什麼。編寫一個方法來查看字符串x是否包含字母「G」

/** 
* Where is the location of the letter G (upper or lower case) in 
* the given string? 
* @param x String to check 
* @return 0 based location of first occurrence of G in x, 
*   -1 if G is not present. 
*/ 
public static int indexOfG(String x) { 
    char[] array = x.toCharArray(); 
    for(int i = 0; i < array.length; i++){ 
     if(array[i] == 'G'){ 
      return i ; 
     } 
    } 
} 
+1

對不起,這不是StackOverflow的是如何工作的方法。問題形式_「這是我的一堆代碼,請爲我調試」_被認爲是無關緊要的。請訪問[幫助]並閱讀[問]以獲取更多信息。 「不起作用」是不夠的。 –

+3

首先,如果在字符串中找不到字母,最後(在for循環後)缺少'return -1;'。另外,該方法是不區分大小寫的?如果是這樣,將你的'if'改爲:'if(array [i] =='G'|| array [i] =='g')'。 – AntonH

+0

爲什麼要創建一個字符數組?正如其他人所說,你可以使用x,indexOf()。如果你不允許這樣做(即,如果你需要自己寫),爲什麼不測試x.charAt(i)? – FredK

回答

2

Java String

已經有絃樂的的indexOf。

從甲骨文的Java文檔:

的indexOf(字符串str) 返回此字符串中指定的子第一次出現的中的索引。

編輯

因爲使用String方法可能不準,我可以給你實現自己的indexOf一些提示。

// This is a more concise and easier to read version 
public static int indexOfG(String str){ 

    for(int i = 0; i < str.length(); ++i){ 
     if(str.charAt(i) == 'G' || str.charAt(i) == 'g') return i; 
    } 
    return -1; 
} 

您應該嘗試將此方法設置爲通用方法,該方法接受第二個參數作爲要查找的字符。

+0

'indexOf(int ch)'可能會更好。 – AntonH

+0

@AntonH在文檔中他可以找到其他重載,所以沒有什麼大不了 –

+0

在開始的java類中很多時候都不允許使用某些標準java庫方法。我猜這是這種類的情況。他將無法使用indexOf –

0
public static int indexOfG(String x) { 
    char[] array = x.toCharArray(); 
    for(int i = 0; i < array.length; i++){ 
     if((array[i] == 'G') || (array[i] == 'g')){ 
      return i ; 
     } 
    } 
    return -1; 
} 

上面的代碼給出'g'的從零開始的第一個位置的正確位置。

Alternativly你也可以用下面的java字符串

公衆詮釋的indexOf(INT CH)

相關問題