How to Convert an String array to an Int array?

Tags: ,



I have made research for a couple hours trying to figure out how to convert a String array to a Int array but no luck.

I am making a program where you can encrypt a message by using three rotors. I am able to type a message and get the index number for the first rotor (inner rotor) to encrypt into the third rotor (outer rotor). The problem is the index number is in a string array which I want it to become a int array.

Yes, I have tried

int[] array == Arrays.asList(strings).stream()
        .mapToInt(Integer::parseInt).toArray();

or any form of that. I’m not unsure if I have java 8 since it doesn’t work, but it gives me an error.

Can someone help me how to convert a String array to a Int array?

public void outerRotorEncrypt() {
    String[] indexNumberSpilt = indexNumber.split(" ");

    System.out.println("indexNumber length: " + indexNumber.length()); //test
    System.out.println("indexNumberSpilt length: " + indexNumberSpilt.length); //test
    System.out.println("Index Number Spilt: " + indexNumberSpilt[3]); //test
    System.out.println("");

    System.out.println("");
    System.out.println("testing from outerRotorEncrypt");
    System.out.println("");

    for(int i = 1; i < indexNumberSpilt.length; i++){
        secretMessage = secretMessage + defaultOuterRotorCharacterArray[indexNumberSpilt[i]];
    }
    System.out.println("Secret Message from outerRotorEncrypt: " + secretMessage);
}

Answer

If you are using Java8 than this is simple way to solve this issue.

List<?> list = Arrays.asList(indexNumber.split(" "));
list = list.stream().mapToInt(n -> Integer.parseInt((String) n)).boxed().collect(Collectors.toList());

In first Line you are taking a generic List Object and convert your array into list and than using stream api same list will be filled with equivalent Integer value.



Source: stackoverflow