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