Java 我想让用户输入并打印平均使用的字母数量和最长的名称

Java 我想让用户输入并打印平均使用的字母数量和最长的名称,java,arrays,class,if-statement,printing,Java,Arrays,Class,If Statement,Printing,这是我的代码,我想打印出一行新代码,上面写着平均使用的字母数。我还想打印出最长的名字。。但是我不能让它工作。。有什么建议吗 import java.util.*; import java.util.stream.Collectors; public class Program { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); Syste

这是我的代码,我想打印出一行新代码,上面写着平均使用的字母数。我还想打印出最长的名字。。但是我不能让它工作。。有什么建议吗

import java.util.*;
import java.util.stream.Collectors;

public class Program {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("Write some names. When you are finished write <Avslutt>! :)");
        ArrayList<String> names = new ArrayList<String>();


        while (scanner.hasNextLine()) {
            String input = scanner.nextLine();
            if ("avslutt".equalsIgnoreCase(input)) {
                Collections.sort(names);
                System.out.println("Here is the result (Alphabetical): " + names);
                break;
            } else {
                names.add(input);
            }

        }


    }
}

import java.util.*;
导入java.util.stream.collector;
公共课程{
公共静态void main(字符串[]args){
扫描仪=新的扫描仪(System.in);
System.out.print(“写一些名字。写完后!:)”;
ArrayList name=新的ArrayList();
while(scanner.hasNextLine()){
字符串输入=scanner.nextLine();
if(“avslutt”.equalsIgnoreCase(输入)){
集合。排序(名称);
System.out.println(“这是结果(字母顺序):”+名称);
打破
}否则{
名称。添加(输入);
}
}
}
}

您可以在输入上循环,而不是空行,然后添加到列表中并对金额求和以计算平均值

用于使用Comparator对列表进行排序。按字符串长度进行比较

 public static void main(String[] a) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("Write some names. When you are finished write <Avslutt>! :)");
        List<String> names = new ArrayList<String>();
        int amount = 0;
        while (scanner.hasNextLine()) {
            String input = scanner.nextLine();
            if ("".equals(input)) {
                break;
            } else {
                names.add(input);
                amount += input.length();
            }

        }

        double avg = amount / names.size();
        Collections.sort(names, Comparator.comparing(n -> n.length()));
        System.out.println("Longest name: " + names.get(names.size() - 1));
        System.out.println("Average letter used:  + avg);
        scanner.close();
    }

publicstaticvoidmain(字符串[]a){
扫描仪=新的扫描仪(System.in);
System.out.print(“写一些名字。写完后!:)”;
列表名称=新的ArrayList();
整数金额=0;
while(scanner.hasNextLine()){
字符串输入=scanner.nextLine();
如果(“.”等于(输入)){
打破
}否则{
名称。添加(输入);
amount+=input.length();
}
}
double avg=金额/名称.size();
Collections.sort(名称,Comparator.comparing(n->n.length());
System.out.println(“最长名称:”+names.get(names.size()-1));
System.out.println(“使用的平均字母:+avg”);
scanner.close();
}

另外,如果可能的话,在没有[test,test,test,test]的情况下,以字符串形式打印数组。您在哪里尝试打印平均字母数以及所有这些?它是如何工作的?@user一个更好的方法是
string.join(“,”,names)
@user Where i print“这是结果“,我希望它还打印整个数组中的平均字母,以及用户写入的最长名称。首先,您需要找到平均和最长名称。堆栈溢出不是代码编写服务。让我们看看你尝试过什么,以及哪里有问题。