java创建一个类方法,在数组中搜索字长

时间:2012-10-30 15:15:56

标签: java arrays

所以我已经制作了一个类方法来搜索一个特定的单词,但是(就像大多数时候我发现自己在这里!)我有一个大脑故障,无法弄清楚如何修改它来做我需要的。这是我到目前为止所得到的:

private static int findFourLetterWord(String[] strings, String key) {
   for (int i = 0; i < strings.length; i++)
      if (strings[i].equals(key))
      return i;
   return -1;
}

所以这会在数组中搜索'key',如果找到则返回它的位置。我试图让它做的是搜索它遇到的前4个字母单词的字符串数组并返回该单词。我会将第一个回报更改为System.out.println(strings[i]);我相信,但我不知道如何让它搜索它找到的前4个字母单词。尝试使用一堆复杂的子串,但这不起作用。任何建议或指导都会很棒。提前谢谢你。

3 个答案:

答案 0 :(得分:3)

你现在的方法很接近;你只需要改变for循环中的条件,使用String#length()检查长度为4,而不是与关键参数相等。

private static String findFourLetterWord(String[] strings) {
    for (String str : strings) {
        if (str.length() == 4) {
            return str;
        }
    }
    return null;
}

当您发现自己不确定哪些方法可供您方便时,请不要忘记咨询JavaDocs

答案 1 :(得分:2)

我理解你的问题了吗?

private static String findFourLetterWord(String[] strings) {
   for (int i = 0; i < strings.length; i++)
      if (strings[i].length()==4)
          return strings[i];
   return null;
}

答案 2 :(得分:0)

使用substring函数获取键和字符串的前4个字符,如下所示:

 private static int FindFourLetterWord(String[] strings, String key) {
   //Assuming key length is 4 or more
   String keyWithFourChars = key.substring(0,4); 

   for (int i = 0; i < strings.length; i++){
     if(strings[i].length() > 3){
        if (strings[i].substring(0,4).eqauls(keyWithFourChars)){
         return i;
        }
      }
    }
    return -1;
 }

如果你只想查找4个字符串,那么只需检查长度如下: 在这种情况下,您无需将key作为参数传递。

 private static int FindFourLetterWord(String[] strings) {
   for (int i = 0; i < strings.length; i++){
       if(strings[i].length() == 4){
         return i;
       }
    }
    return -1;
 }