【问题标题】:java array name length issuesjava数组名长度问题
【发布时间】:2019-08-18 05:57:17
【问题描述】:

我不一定知道如何使用循环来创建我的数组元素并打印。我的作业要我创建一个名为 nameLengths 的新 int 数组。编写一个循环遍历之前创建的名称数组,并将每个名称的长度添加到 nameLengths 数组中。

我四处搜索并查看了很多其他人的类似问题,但无法完全弄清楚如何将它实现到我的特定代码中。

import java.lang.reflect.Array;

public class arrays {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int[] ages = new int[9];
        //array of ages
        ages[0] = 3;
        ages[1] = 9;
        ages[2] = 23;
        ages[3] = 64;
        ages[4] = 2;
        ages[5] = 8;
        ages[6] = 28;
        ages[7] = 93;
        ages[8] = 22;
        // average age print
        System.out.println(average(ages));
        //subtraction code
            int i = ages[ages.length - 1] - ages[0];
            System.out.println("age difference:");
            System.out.println(i);

           String[] names = new String[6];{
                names[0] = "Sam";
                names[1] = "Tommy";
                names[2] = "Tim";
                names[3] = "Sally";
                names[4] = "Buck";
                names[5] = "Bob";
                }
        int[] nameLengths = new int[names.length - 1];  {

            }   
            System.out.println("average number of characers per name");
            System.out.println(averageNumberOfChar(names));
            System.out.println("concatination");
            System.out.println(createConcatination(names));
            System.out.println(findNameLength(names));
            }



            public static int sum(int[] numbers , String String) {
                int sum = 0;
                for (int number : numbers) {
                    sum += number;
                }
            return sum;
            }
            public static int average(int[] numbers) {
                int sum = 0;
                for (int number : numbers) {
                    sum += number;
                }
                System.out.println("average age:");
            return sum / numbers.length;
       }
            public static int averageNumberOfChar(String[] names) {
                int total=0;
                for (int j = 0; j < names.length; j++) {
                    total += names[j].length();

                }
                return total / names.length;
            }
            public static String createConcatination(String[] names) {
                int k = 0;
                String concatination = names[k];
                for(k = 0; k < names.length; k++) {
                    System.out.print(names[k] + " ");
                }
                return concatination;
            }
            public static int findNameLength(int[] names){
                int length = 0;
                for(int l = 0; l < names.length; l ++) {
                System.out.println(names[l]);
            }
                return length;
            }
    }

【问题讨论】:

    标签: java arrays methods


    【解决方案1】:

    您可以使用Arrays.stream()names 数组中获取Stream&lt;String&gt;,并使用String::length 映射函数将其映射到字符串长度的IntStream,并将生成的IntStream 收集到一个int 数组中表示名称的长度:

    String[] names = {
                "Sam",
                "Tommy",
                "Tim",
                "Sally",
                "Buck",
                "Bob"
            };
    int[] nameLengths = Arrays.stream(names)
                              .mapToInt(String::length)
                              .toArray();
    System.out.println(Arrays.toString(nameLengths));
    

    输出:

    [3, 5, 3, 5, 4, 3]
    

    或者如果你想使用传统的 for 循环:

     int[] nameLengths = new int[names.length];
     for(int i = 0; i < names.length; i++){
         nameLengths[i] = names[i].length();
     }
     System.out.println(Arrays.toString(nameLengths));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-17
      • 2016-12-07
      • 1970-01-01
      • 2020-10-01
      • 1970-01-01
      • 2021-12-03
      相关资源
      最近更新 更多