当前位置: 首页 > 面试题库 >

如何使用charAt()和length()编写是否为子字符串方法

章海
2023-03-14
问题内容

我想编写一种boolean方法subString()来判断string s1是否是的子字符串s2

要求仅使用 charAt() 和的 length() 方法 String

例如

 Substring("abc","abcd")-> true

 Substring("at","cat")->true

 Substring("ac","abcd")->false

indexOf() 不能使用。

这是我到目前为止所得到的。

public class Q3 {
    public boolean subString(String str1, String str2) {
        String s1 = str1.toLowerCase();
        String s2 = str2.toLowerCase();
        for (i = 0; i < s1.length; i++) {
            for (j = 0; j < s2.length; j++) {
                if (s1.charAt(i) == s2.charAt(j))
                    return true;
            }
        }
        return false;
    }
}

测试类是:

public class Q3test {
    public static void main (String arg[]){
        Q3 Q3object = new Q3();
        System.out.println(Q3object.Substring("ac","abcd"));
    }
}

它失败,subString("ac","abcd")因为它返回true。


问题答案:

如果第一个字符匹配,则代码返回true。您需要将第一个字符串的所有字符包含在第二个字符串的子字符串中。

编辑:

我的原始代码是错误的。这是正确的代码:

        public static boolean subString(String str1, String str2)
        {
          String s1 = str1.toLowerCase();
          String s2 = str2.toLowerCase();
          for (int offset = 0; offset <= s2.length() - s1.length(); offset++) {
            int i = 0;
            for (; i < s1.length(); i++){
              if(s1.charAt(i) != s2.charAt(i+offset)) {
                break;
              }
            }
            // found a substring that starts at the current offset
            if (i == s1.length())
              return true;
          }
          return false;
        }


 类似资料:
  • 问题内容: 我想在很大的字符串的特定位置找到字符。但是我无法使用方法,因为范围超出了int的范围。有什么调整吗? 问题答案: 在Java中,字符串由字符数组支持。数组的理论大小受的最大值限制,因此不可能有超过2 31 -1个字符的字符串开头。 要解决此问题,您可以创建自己的使用多个数组或字符串作为存储的字符串类。

  • 进入了一个非常基本的问题。我必须将json字符串转换为对象。我有一个自定义方法,如下所示,如果它无法从中获取对象,则预计将转换为相应的类并抛出异常。 问题是如果我试图转换不同类的json,这个方法不会抛出异常。 我的班级 } 当我传递的是公司的json字符串而不是上述类的字符串时,它不会引发异常。 字符串: 我想我做这个转换的方式是错误的。建议的做法是什么?

  • 投入:8576产出:218预期产出:8+5+7+6=26 已修正:

  • 本文向大家介绍写一个方法判断字符串是否为回文字符串相关面试题,主要包含被问及写一个方法判断字符串是否为回文字符串时的应答技巧和注意事项,需要的朋友参考一下 https://leetcode-cn.com/problems/valid-palindrome/ 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。 说明:本题中,我们将空字符串定义为有效的回文串。 示例 1:

  • 本文向大家介绍Java如何获取数组和字符串的长度(length还是length()),包括了Java如何获取数组和字符串的长度(length还是length())的使用技巧和注意事项,需要的朋友参考一下 限时 1 秒钟给出答案,来来来,听我口令:“Java 如何获取数组和字符串的长度?length 还是 length()?” 在逛 programcreek 的时候,我发现了上面这个主题。说实话,我

  • 问题内容: 不使用String类的方法如何查找字符串的长度? 问题答案: 应该管用。 或如何: 甚至可能会在恒定时间内运行:) 另一个 最愚蠢的解决方案之一: 这是作弊吗?:-)