Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 编写一个方法以查看字符串x是否包含字母“G”_Java_Arrays_String_Methods - Fatal编程技术网

Java 编写一个方法以查看字符串x是否包含字母“G”

Java 编写一个方法以查看字符串x是否包含字母“G”,java,arrays,string,methods,Java,Arrays,String,Methods,我正在做一项作业,让我们填写8种不同的方法。对于我正在处理的特定方法,我必须查看字符串是否包含字母“G”和return。我想出了一个我认为可行的办法,但事实并非如此。这也是一个基本的Java类,我是一个新手,所以请解释一下你做了什么 /** * Where is the location of the letter G (upper or lower case) in * the given string? * @param x String to check * @return 0 b

我正在做一项作业,让我们填写8种不同的方法。对于我正在处理的特定方法,我必须查看字符串是否包含字母“G”和return。我想出了一个我认为可行的办法,但事实并非如此。这也是一个基本的Java类,我是一个新手,所以请解释一下你做了什么

/**
 * 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 ;
        }   
    }
}
已存在字符串的indexOf

来自Oracle的Java文档:

索引字符串str 返回指定子字符串第一次出现的字符串内的索引

编辑

由于可能不允许使用字符串方法,我可以给您一些关于实现自己的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;
}
您应该尝试将此方法设置为通用方法,该方法接受第二个参数作为要查找的字符

    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”的第一个零基位置的正确位置

另外,您也可以使用下面的java字符串方法


public int indexOfint ch

对不起,StackOverflow不是这样工作的。问题的形式这里有一堆我的代码,请为我调试它被认为是离题。请访问并阅读以了解更多信息。它不起作用是不够的。一方面,你错过了回报-1;在for循环之后的末尾,以防在字符串中找不到字母。此外,该方法是否应该不区分大小写?如果是,请将If更改为:ifarray[i]='G'| | array[i]='G'。为什么要创建字符数组?正如其他人所说,您可以使用x,indexOf。如果不允许您这样做,也就是说,如果要求您自己编写,为什么不在x.charAti上测试呢?indexOfint ch可能会更好。@Antoh在文档中可以找到其他重载,因此没有什么大不了的。很多时候,在开始java类时,不允许使用某些标准java库方法。我猜这门课就是这样。他将无法使用indexOfi,因为工厂方法可能不允许,所以他添加了一个带有for循环的简单实现。我感谢大家的帮助!如果我违反了发帖准则,我表示歉意;我是新来的。非常感谢。