startsWithString word,char c中的参数

如何解决startsWithString word,char c中的参数

我正在努力理解为准备几天后的考试而收到的练习任务。这是我到目前为止的代码

/**
 * Check if the first letter in this word matches the given letter c
 * @param word a word
 * @param c - a character a-z upper or lower case
 * @return true if first letter in word matches c
 */
@Override
public boolean startsWith(String word,char c) {
}

我应该编写能通过我在单独文件中具有的测试要求的代码。所有测试代码都已经提供给我,我的唯一任务是编写代码,如果String单词中的第一个字母与char c匹配,则返回true。字母是大写还是小写都没有关系,因为带有测试代码文件包含处理此问题的代码。 总结一下: 我想我要的是帮助您了解我到底应该做什么?我尝试按照这种方式写一些东西,但是我认为这是不正确的,我认为我完全忽略并忽略了大部分任务:

@Override
public boolean startsWith(String word,char c) {
    if (word.startsWith(word,c)) {
        return true;
    } else {
        return false;
    }
}

解决方法

这里的问题是您误解了startsWith()方法的参数。第一个参数是前缀。那应该是您的角色c。第二个参数是开始寻找该前缀的偏移量。在这种情况下,您希望该值为0。您真正想要的是word.startsWith(Character.toString(c),0)。您的原始代码没有引发编译时异常的原因是因为字符c被当作数字对待,并且为了匹配{{ 1}}方法。

,

了解在哪里可以找到要使用的Java标准库版本的JavaDoc,这对您很有好处。 Java 10的代码在这里:https://docs.oracle.com/javase/10/docs/api/index.html?overview-summary.html,其他几个版本的代码也在附近。您可以使用这些方法来查找感兴趣的类,例如java.lang.String,以确定它们提供的方法,并了解这些方法的参数和行为的详细信息。

尤其是,您可能会考虑检查rostopic list的几种String方法,在这种情况下,您会发现它们确定是否在其上调用startsWith()对象 以特定字符串或与特定模式匹配的字符串开头。这不是您尝试使用与调用参数匹配的方式的方法。

另一个答案描述您可以对问题应用String,但这不是您的唯一选择。仔细研究可用的方法会发现几种从String.startsWith()中获取单个char的方法,例如String方法。如果确实不需要担心大小写(这对我来说令人惊讶),那么就我个人而言,我倾向于提取第一个字符(索引为0)并将其与感兴趣的字符进行比较。也就是说,我将从这里开始:

charAt()

其余的作为练习。

,

string startsWith oracle中的方法文档:

startsWith(字符串前缀,整数偏移量)

测试此子字符串是否 以指定索引开头的字符串以指定的开头 前缀。

但是您需要测试第一个字符是否以字符c开头。因此,您可以使用startsWith(String word)(来自String)的重载版本。这是我的2个选择:

选项1:

@Override
public boolean startsWith(String word,char c) {
    return word.charAt(0) == c; 
}

选项2:

@Override
public boolean startsWith(String word,char c) {
    return word.startsWith(String.valueOf(c); 
}

请注意,您可以通过检查答案中提到的“ word”参数无效性来改进此方法。例如:

@Override
public boolean startsWith(String word,char c) {
    return word != null && word.startsWith(String.valueOf(c); 
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?