java - 如何打印用户定义列表中最长的单词?

标签 java arraylist methods

我有这段代码来打印用户定义列表中最长的单词,但结果为空。我已将列表转换为字符串,但它仍然不起作用。

public class no7 {

  public static String getLongestString(String[] array) {
      int maxLength = 0;
      String longestString =null;
      for (String s : array) {
          if (s.length() > maxLength) {
              maxLength = s.length();
              longestString = s;
          }
      }
      return longestString;
  }

  public static void main(String[] str) {


      Scanner in = new Scanner(System.in);
    System.out.println("Enter a list:");
    ArrayList<String> list = new ArrayList<String>();
     str = list.toArray(new String[0]);


     while (!in.hasNext("done") && !in.hasNext("Done") )
        {
        list.add(in.next());
        }

     String longestString = getLongestString(str);
      System.out.format("longest string: '%s'\n", longestString);



        }
  }

最佳答案

首先,public static void main(String[] str) {然后str = list.toArray(new String[0]);这不是什么main 的参数仅供引用。

此外,如果您在填充列表本身之前将列表内容分配给 strstr 将不会包含用户输入的内容。

最后,为什么 getLongestString 不能简单地接受和使用 List 而不是数组?无论如何,您都会按顺序访问它。

所有这些都转化为

public class no7 {

    public static String getLongestString(List<String> array) {
        int maxLength = 0;
        String longestString =null;
        for (String s : array) {
            if (s.length() > maxLength) {
                maxLength = s.length();
                longestString = s;
            }
        }
        return longestString;
    }

    public static void main(String[] str) {


        Scanner in = new Scanner(System.in);
        System.out.println("Enter a list:");
        ArrayList<String> list = new ArrayList<String>();    

        while (!in.hasNext("done") && !in.hasNext("Done") )
        {
            list.add(in.next());
        }

        String longestString = getLongestString(list);
        System.out.format("longest string: '%s'\n", longestString);



    }
}

顺便说明一下,类名的 no7 不遵守 java 命名约定。它应该是 No7(记住相应地重命名文件)。

关于java - 如何打印用户定义列表中最长的单词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60432517/

相关文章:

java - 如何动态控制for循环的嵌套层次?

java - 使用 JFreeChart <java> 将动态折线图添加到现有 JFrame 中的 JPanel

java - 将纯文本解析为某些结构化对象

java - 对列表进行排序取决于另一个排序列表,该列表具有一个共同的排序属性

c# - 区分附加到同一事件处理程序的多个对象

javascript - 我可以为对象的方法/属性选择器设置正则表达式吗?

Java 泛型 : multiple generic parameters?

java - 快速复制 HashMap

java - 谁能告诉我为什么我的更改数量按钮没有更改数量?

python - 使用 Django Rest Framework 从方法序列化数据