【问题标题】:Writing a method to see if String x contains letter "G" [closed]编写一个方法来查看字符串 x 是否包含字母“G”[关闭]
【发布时间】:2017-07-18 10:54:30
【问题描述】:

我正在处理一项要求我们填写 8 种不同方法的作业。对于我正在处理的特定方法,我必须查看字符串是否包含字母“G”并返回。我想出了一些我认为可行的方法,但事实并非如此。这也是一个基本的 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 ;
        }   
    }
}

【问题讨论】:

  • 对不起,这不是 StackOverflow 的工作方式。 “这是我的一堆代码,请为我调试” 形式的问题被认为是题外话。请访问help center 并阅读How to Ask 了解更多信息。 “它不起作用”是不够的。
  • 一方面,如果您在字符串中没有找到字母,您会在末尾缺少一个return -1;(在for 循环之后)。另外,该方法是否应该不区分大小写?如果是这样,请将您的 if 更改为:if(array[i] == 'G' || array[i] == 'g')
  • 为什么要创建字符数组?正如其他人所说,您可以使用 x,indexOf()。如果您不允许这样做(即,如果您需要自己编写),为什么不在 x.charAt(i) 上进行测试?

标签: java arrays string methods


【解决方案1】:

Java String

字符串已经有一个 indexOf。

来自 Oracle 的 Java 文档:

indexOf(String 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;
}

您应该尝试将此方法设置为通用方法,它接受第二个参数作为您要查找的字符。

【讨论】:

  • indexOf(int ch) 可能会更好。
  • @AntonH 在文档中他可以找到其他重载,所以没什么大不了的
  • 很多时候,在开始 java 类时,不允许使用某些标准的 java 库方法。我猜这门课就是这种情况。他将无法使用 indexOf
  • 我添加了一个带有 for 循环的简单实现,因为可能不允许使用工厂方法。
  • 感谢大家的帮助!如果我违反了发布指南,我深表歉意;我是新来的。谢谢!
【解决方案2】:
    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字符串方法

公共 int indexOf(int ch)

【讨论】:

    猜你喜欢
    • 2020-07-19
    • 2012-12-27
    • 2022-01-04
    • 2015-01-04
    • 1970-01-01
    • 2017-07-24
    • 2017-03-26
    相关资源
    最近更新 更多