Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何以不同的数据类型显示此列表?_Java_Eclipse - Fatal编程技术网

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
  • 如果列表中的项为
    整数
    双精度
    等,则
    instanceof Number
    返回true
这是一种使用
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