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“这是结果“,我希望它还打印整个数组中的平均字母,以及用户写入的最长名称。首先,您需要找到平均和最长名称。堆栈溢出不是代码编写服务。让我们看看你尝试过什么,以及哪里有问题。