如果s1和s2的最后四个字符子字符串相等,则实现一个返回true的方法。如果任一字符串的长度小于4,则该方法应返回false。
您可以使用s.substring(n, m)方法来生成s的子字符串,从索引n开始,以索引m-1结尾。
作为一个答案,我提供了以下代码,我只是想知道我是否以一种正确的方式:
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;
}发布于 2014-06-02 01:18:42
我会做这样的事:
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));
}发布于 2014-06-02 01:12:05
如果您查看一下JavaDocs,您将注意到有两个substring方法
对于你的情况,你可能只需要第一个,例如.
s1.substring(s1.length() - 4);将返回String的最后四个字符。您只需在第二个String上使用相同的技术,并比较结果。
我也不知道for-loop想要实现什么.
发布于 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循环并没有给我必要的印象。正如前面提到的,这里和这里现在已经退出了考试,请尝试编译它,并在发现错误时修复它们。写一个测试也有帮助,因为你可以检查它是否得到了你想要的东西。
https://stackoverflow.com/questions/23986088
复制相似问题