List i=new ArrayList();
i.add("abc");
i.add("def");
i.add(61);
i.add(9);
i.add(50);
i.add("ghi");
i.add("ikh");
i.add("oihik");
i.add("oig");
i.add(243);
i.add(5);
i.add(54);
for (Iterator iterator = new Test123((i.iterator())); iterator.hasNext();) {
Object object = (Object) iterator.next();
System.out.println(object);
预期输出将是:
字符串输入:abc def ghi ikh oihik oig
整数输入:61 9 50 243 5 54
我是java的新手,并在系统维护和开发方面实习。我真的需要一些帮助解决这个问题..请帮帮我
如果列表被分组并且我想过滤整数输出怎么样?
预期输出为:
字符串输入:abc def ghi ikh oihik oig
整数输入:61 9 50 243 5 54
小于60的整数是:9 50 5 54
答案 0 :(得分:0)
如果您想要的是分隔字符串和整数元素并打印它们,您可以这样做:
List i=new ArrayList();
i.add("abc");
i.add("def");
i.add(61);
i.add(9);
i.add(50);
i.add("ghi");
i.add("ikh");
i.add("oihik");
i.add("oig");
i.add(243);
i.add(5);
i.add(54);
StringBuilder strBuilder = new StringBuilder( "String input:");
StringBuilder intBuilder = new StringBuilder( "Integer input:");
for( Object o : i)
{
if( o instanceof String)
{
strBuilder.append( " ");
strBuilder.append( o);
}
else if( o instanceof Integer)
{
intBuilder.append( " ");
intBuilder.append( o);
}
}
System.out.println( strBuilder.toString());
System.out.println( intBuilder.toString());
答案 1 :(得分:0)
您可以使用instanceof Class
测试列表中的每个项目。
instanceof String
,则String
会返回true
如果您的列表中的项目为instanceof Double
Double
会返回true
如果您的列表中的项目是instanceof Number
,Integer
等,则Double
会返回true。使用Stream
和lambda expression
这是一种非常简单直接的方法。最后使用List的String表示中使用的String
方法提取所需的replaceAll()
。
List<String> listString = (List<String>) i.stream()
.filter(t -> t instanceof String).collect(Collectors.toList());
List<Number> listNumber = (List<Number>) i.stream()
.filter(t -> t instanceof Number).collect(Collectors.toList());
String str = listString.toString().replaceAll(",", "").replaceAll("[\\[.\\].\\s+]", " ");
String num = listNumber.toString().replaceAll(",", "").replaceAll("[\\[.\\].\\s+]", " ");
System.out.println(str); // prints: abc def ghi ikh oihik oig
System.out.println(num); // prints: 61 9 50 243 5 54