【发布时间】:2015-02-15 01:07:35
【问题描述】:
我必须在数组列表中输入城市,然后分析输入的城市,以找到大写字母最多的城市。但是我无法找出代码来对数组列表中的输入进行任何分析并找到具有最多大写字母的单词。
package cirties2;
import java.util.Scanner;
import java.util.*;
public class Cirties2 {
public static void main(String[] args)
{
Scanner city = new Scanner(System.in);
System.out.println("Enter the cities<enter stop to exit>");
List<String> cities = new ArrayList<String>( );
boolean thing = true;
while(thing)
{
String s = city.nextLine( );
if(s.equalsIgnoreCase("stop"))
{
System.out.println(cities);
break;
}
else
{
System.out.println("Enter the cities<enter stop to exit>");
cities.add(s);
}
}
}
}
【问题讨论】:
-
您可能对您的大脑造成了伤害,但不允许它先尝试自己编写代码,您可能会因为不认为它有能力这样做而侮辱它。我敢打赌它是。我说,先试一试,看看你想出了什么——你可能会感到惊喜。即使您没有成功,您也可以回到这里提出更具体和改进的问题,这可能会为您提供更好和更具体的答案。
-
检查列表中的每个项目,计算大写字母,跟踪您获得的最高计数。一步一步搞清楚。
-
要为您指明正确的方向,请查看
toCharArray()和Character.isUpperCase(your char)。希望你能弄清楚。 :) -
附言:字符只是表示 UnicodeTable 中位置(或代码点)的数字,因此您可以像
yourCharacter<'Z'一样比较它们。 -
另外你可以看看java 8的新特性:
list.sort((String a, String b) -> b.chars().filter((int i)->Character.isUpperCase(i)).reduce(0,(int x, int y)-> y+1)-a.chars().filter((int i)->Character.isUpperCase(i)).reduce(0,(int x, int y)-> y+1))