首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java代码-比较最后4个字母

Java代码-比较最后4个字母
EN

Stack Overflow用户
提问于 2014-06-02 01:07:33
回答 6查看 100关注 0票数 1

如果s1s2的最后四个字符子字符串相等,则实现一个返回true的方法。如果任一字符串的长度小于4,则该方法应返回false。

您可以使用s.substring(n, m)方法来生成s的子字符串,从索引n开始,以索引m-1结尾。

作为一个答案,我提供了以下代码,我只是想知道我是否以一种正确的方式:

代码语言:javascript
复制
public static boolean compareLast4 (String s1, String s2) {
    s1len = s1.length;
    s2len = s2.length;
    if (s1lan < 4 || s2len < 4)
        return false;
    for (int i = 0; i < s1len; i++)
        if (s1.substring() - 4.equals(s2.length() - 4))
            return true;
        return false;
}
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2014-06-02 01:18:42

我会做这样的事:

代码语言:javascript
复制
public static boolean compareLast4 (String s1, String s2) 
{
    if (s1.length() < 4 || s2.length() < 4)
        return false;
    return s1.substring(s1.length() - 4).equals(s2.substring(s2.length()-4));
}
票数 1
EN

Stack Overflow用户

发布于 2014-06-02 01:12:05

如果您查看一下JavaDocs,您将注意到有两个substring方法

  • 子字符串(Int beginIndex)
  • 子字符串( int beginIndex,int endIndex)

对于你的情况,你可能只需要第一个,例如.

代码语言:javascript
复制
s1.substring(s1.length() - 4);

将返回String的最后四个字符。您只需在第二个String上使用相同的技术,并比较结果。

我也不知道for-loop想要实现什么.

票数 3
EN

Stack Overflow用户

发布于 2014-06-02 01:32:38

忽略s1lan的拼写错误(变量应该是s1len ),我相信您做了几乎正确的事情来排除短于4个字符的字符串。试一试s1.length()

不过,就for循环而言,(s1.substring() - 4.equals(s2.length() - 4))比您想要的更离题。

您会注意到,s1.substring()没有指定长度,而是返回一个String,因此String - int没有意义。在equals()函数中,您有int - int,所以这很好,但是您可能没有比较您想要的内容。

(s1.substring(s1len - 4)).equals(s2.substring(s2len - 4))将更接近您的意图,因为这将提供两个子字符串。

首先,for循环并没有给我必要的印象。正如前面提到的,这里这里现在已经退出了考试,请尝试编译它,并在发现错误时修复它们。写一个测试也有帮助,因为你可以检查它是否得到了你想要的东西。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23986088

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档