Keine Schlaufen (sichtbar) ... aber war es das wirklich wert?
import static org.hamcrest.MatcherAssert.assertThat;
import org.hamcrest.collection.IsArrayContainingInOrder;
import com.google.common.base.Function;
import com.google.common.base.Splitter;
import com.google.common.collect.Iterables;
@Test
public void testDecompose() {
final String input = "1,2,3,4";
Integer arr [] = Iterables.toArray(Iterables.transform(Splitter.on(",").split(input), new Function<String,Integer>(){
@Override public Integer apply(String input) {
return Integer.parseInt(input);
}}), Integer.class);
assertThat(arr, IsArrayContainingInOrder.arrayContaining(1,2,3,4));
}
Um Collection<Integer>
oder List<Integer>
ist es noch einfacher - wie Sie Iterable<Integer>
vom transform
bekommen werde:
@Test
public void testDecompose() {
final String input = "1,2,3,4";
List<Integer> l = Lists.newArrayList(Iterables.transform(Splitter.on(",").split(input), new Function<String,Integer>(){
@Override public Integer apply(String input) {
return Integer.parseInt(input);
}}));
assertThat(l, IsCollectionContaining.hasItems(1,2,3,4));
}
Ich bin mir nicht sicher, ob ich folge, Haben Sie eine 'String []' und Sie wollen es zu einem 'int []' machen? Oder ist es 'String' zu' int [] '? Oder willst du ein Integer [] 'als Ergebnis? Bitte präzisieren Sie was * genau * versuchen Sie zu erreichen – amit
Welche Art von String haben Sie? Welche Art von Zersetzung willst du? –
Warum die Beschränkung auf eine Schleife? Dies zu tun, ist wahrscheinlich die einfachste Lösung. – Jim