java - 比较并检查两个字符串中的最后 4 个字符是否相同?

标签 java substring

今天我参加了 Java 考试,我希望我已经做了足够的努力以通过考试。

虽然我的 Java 经验不断增长,但我知道我尝试的一个问题是错误的,我正在寻求对这一失败的澄清以及解决方案。

问题是这样的:

Create a method of type boolean that will return true if the final four character substrings of String a and String b are equal.

我的尝试是这样的:

public static boolean test(String a, String b){
    //Lets assume that the Strings are equal
    if(a.substring(-4).equals b.substring(-4)){
        return true;
    }
}

我知道这是错误的,但在考试条件下你的大脑往往会一片空白。 该考试是一项基础考试,我们试图熟悉 Java 语法。 考试也是纸质考试,无法使用任何电脑。

所以,请原谅我的代码中的任何错误,因为我仍在学习。

最佳答案

好的,substring 方法采用 (int startIndex[, int endIndex])

那么你的代码是做什么的?

检查a的子字符串(从-4开始到a.length)是否等于b的子字符串,从-4开始到b.length

如您所知,字符串索引从 0 开始,因此 -4 会向您抛出一个异常,告诉您您正在尝试使用负索引作为 开始索引

由于您需要检查最后四个字符,因此可以使用 a.length() (它将返回给定字符串的长度)作为起始索引,因此 substring 将返回字符串的最后四个字符。

public static boolean test(String a, String b){
    //Lets assume that the Strings are equal
    return a.substring(a.length() - 4).equals(b.substring(b.length() - 4));
}

这里有一个问题,如果长度小于4怎么办?它仍然会尝试访问负索引。

我不会重复@Elliott Frisch 的回答,因为已经给了你这个问题的答案。

关于java - 比较并检查两个字符串中的最后 4 个字符是否相同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23898304/

相关文章:

java - SpringMVC自定义集合编辑器不将数据返回到Jsp

java - 在 JUnit 5 中使用 Allure 进行测试报告

android - 如何从 Java 中的 HTML 代码中获取带有 javascript 代码的子字符串?

java - 在java中计算子树WAVL中有多少内部叶子在O(1)中

java - 每次都将数据新鲜写入文件

java - 如何在 JPA 中删除具有多对多关系的实体(以及相应的连接表行)?

Java subString 和 indexOf

c# - 编写正则表达式以搜索子字符串 C#

java - JAVA中查找子字符串的最快方法

C++ 子字符串 POS