2016-09-07 3 views
-3
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とシステムの維持・発展の私のインターンシップを行うことで新たなんです。私は本当にpleaseeリストがグループ化され、iは整数の出力をフィルタリングしたいされている場合について


どのように私を助けて...この問題のためにいくつかの助けが必要?

予想される出力は次のようになります。

文字列入力:abc def ghi ikh oihik oig

整数入力:60未満61 9 50 243 5 54

整数である:9 50 5 54

+1

あなたの問題を理解していない。あなたは何をしようとしているのですか? – Bene

+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

instanceof整数をinstanceofに実際に変更することができます。小数点以下を処理するための数値も – user3138997

+0

ありがとうございました。あなたはJavaのuoyilmazと@ user3138997 – Hanis

0

リスト内の各項目をinstanceof Classでテストできます。

  • instanceof String trueを返し、リストの項目がIntegerのいずれかである場合は、リストの項目がDouble
  • instanceof Numberリターンのtrueの場合、あなたのリストの項目はString
  • instanceof Doubleリターンの真である場合には、 Doubleなど

これはStreamlambda expressionを使用して非常にシンプルで簡単な方法です。最後に、リストの文字列表現に使用されているメソッドで必要なStringを抽出します。

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 
+0

について説明してくれてありがとう。私は本当にストリームメソッドを試してみたいです。しかし、私はjava.util.streamをサポートしていないeclipseを使用しています。私はそれがそれをサポートしていないと思う。 – Hanis

+0

私はEclipseで動作し、Streamをサポートしています。あなたはちょうどJava 8が必要です。 –

+0

大丈夫です。知りませんでした。あなたに感謝@ニコラスCharalambidis – Hanis

関連する問題