Java 如何以不同的数据类型显示此列表?
预期产出将是: 字符串输入:Java 如何以不同的数据类型显示此列表?,java,eclipse,Java,Eclipse,预期产出将是: 字符串输入: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如果您只想分离字符串和整数元素并打印它们,您可以这样做: List i=ne
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如果您只想分离字符串和整数元素并打印它们,您可以这样做:
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);
您可以使用
instanceof Class
测试列表中的每个项目
如果列表项为instanceof String
String
如果列表中的项目为instanceof Double
Double
- 如果列表中的项为
、整数
等,则双精度
返回trueinstanceof Number
流
和lambda表达式
的非常简单直接的方法。最后,使用列表字符串表示中使用的replaceAll()
方法提取所需的String
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());
List listString=(List)i.stream()
.filter(字符串的t->t实例).collect(收集器.toList());
List listNumber=(List)i.stream()
.filter(t->t instanceof Number).collect(collector.toList());
String str=listString.toString().replaceAll(“,”).replaceAll(“[\\[.\\].\\s+]”,”);
String num=listNumber.toString().replaceAll(“,”,”).replaceAll(“[\\[.\\].\\s+]”,”);
System.out.println(str);//印刷品:abc def ghi ikh oihik oig
System.out.println(num);//印刷品:61950243554
不理解您的问题。你想做什么?看看预期的输出。你实际上可以将instanceof integer改为instanceof Number,以满足小数的需要。你在java uoyilmaz和@user3138997方面给了我很多帮助,也给了我一些新的东西。谢谢你的解释。我真的很想尝试流方法。但是..我使用的eclipse不支持java.util.stream。我认为它不支持它,我使用Eclipse,它明确地支持流。你需要Java 8.0,好的,我明白了。我不知道。谢谢你@Nikolas Charalambidi的到来。如果其中一个答案帮助您解决了问题,请将其标记为已接受,以避免此问题无法回答。
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