返回数组中最长字符串的元素编号

时间:2010-06-14 03:08:20

标签: java arrays string

我正在尝试获取用户输入的字符串数组的最长方法,然后返回该数组中最长字符串的元素编号。我得到了能够在最长的字符串中返回字符数量的点,但我不相信这会对我需要的东西起作用。我的问题是,在尝试解决这个问题时,我一直遇到不兼容的类型错误。我还不了解整个数据类型的字符串。令我困惑的是我如何返回一些数组,但数组是字符串。主要方法很好,我卡在了????一部分。

public static void main(String [] args) 
{
    Scanner inp = new Scanner( System.in );
    String [] responseArr= new String[4];

    for (int i=0; i<4; i++)
    {
     System.out.println("Enter string "+(i+1));
     responseArr[i] = inp.nextLine();
    }
    int highest=longestS(responseArr);
}

public static int longestS(String[] values)
{    
    int largest=0

    for( int i = 1; i < values.length; i++ )
    {
        if ( ?????          )

    }
    return largest; 
}

4 个答案:

答案 0 :(得分:3)

    for (int i = 0; i < values.length; i++)
    {
        if (values[i].length() > largest)
        {
            largest = values[i].length();
            index = i;
        }
    }
    return index;

注意:使用0初始化int i - 数组索引是从0开始的。

回到main,您可以System.out.println("Longest: " + responseArr[highest]);等。

答案 1 :(得分:3)

以下是我写的方式:

public static int findIndexOfLongestString(String[] values)
{     
   int index = -1;

   if ((values != null) && (values.length > 0))
   {
       index = 0;
       String longest = values[0];
       for (int i = 1; i < values.length; ++i)
       {
          if (values[i].length() > longest.length())
          {
             longest = values[i];
             index = i;
          }
       }
   }

   return index;
}

答案 2 :(得分:2)

您需要在longestS方法中存储两件事:到目前为止最大的长度,以及最大长度的数组索引。还要记住,Java中的数组索引从0开始。用int i = 1初始化的for循环实际上将从第二个索引开始。

答案 3 :(得分:1)

我的解决方案:

public class JavaApplication3
{
    public static void main(String[] args)
    {
        String[] big={"one","two","three"};
        String bigstring=null;
        int maxlength=0;
        for(String max:big)
        {
            if(maxlength<max.length())
            {
                maxlength=max.length();
                bigstring=max;
            }
        }
        System.out.println(bigstring);
    }
}