Calculating the sum of all odd array indexes

后端 未结 5 947
予麋鹿
予麋鹿 2021-01-24 19:00

I want to calculate the sum of all odd array indexes, but I\'m having some trouble finding the right way to do it.

Here\'s my code so far:

    String id         


        
相关标签:
5条回答
  • 2021-01-24 19:31

    Just edited your code:

    String id = "9506265088085";
    int[] intArray = new int[id.length()];
    int sum = 0;
    
    for (int i = 0; i < intArray.length; i++) {
    
        if (i%2!=0)
        {
            sum += Integer.parseInt(String.valueOf(id.charAt(i));
    
        }} 
    
        System.out.println(sum);
    
    0 讨论(0)
  • 2021-01-24 19:32

    You are looping only from i=0 to i=5

    0 讨论(0)
  • 2021-01-24 19:42

    There is no Index 13 in this array as in Java index starts from 0. A solution to calculating the sum of all odd array indexes with Java 8 is:

        String id = "9506265088085";
        String[] strArray = id.split("");
    
        int sum = IntStream.range(0, strArray.length)
                .filter(idx -> idx % 2 == 1)
                .map(idx -> Integer.parseInt(strArray[idx]))
                .sum();
    
        System.out.println(sum);
    
    0 讨论(0)
  • 2021-01-24 19:43
    String id = "9506265088085";
    int[] intArray = new int[strArray.length];
    int sum = 0;
    
    for (int i = 1; i < id.length(); i+=2) {
            sum += Integer.parseInt(String.valueOf(id.charAt(i)));
        } 
    
        System.out.println(sum);
    
    0 讨论(0)
  • 2021-01-24 19:47

    The other answer is right, you are only looping to 5. However, you're making this overly complicated; there's a neat trick you can use to avoid Integer.parseInt() and String.valueOf():

    int sum = 0;
    
    for (int i = 1; i < id.length(); i += 2) {
        sum += (id.charAt(i) - '0');
    }
    

    Also note that instead of checking i%2 repeatedly, you can simply add 2 to the loop control variable at the end of each iteration (and let it start at 1 so you hit only the odd indices).

    0 讨论(0)
提交回复
热议问题