Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何逐行打印字母表?_Java_Arrays_Alphabetical - Fatal编程技术网

Java 如何逐行打印字母表?

Java 如何逐行打印字母表?,java,arrays,alphabetical,Java,Arrays,Alphabetical,我是一个帮助年轻学生学习编程的学生。其中一些已获得代码: public class student { public static void main(String[] args) { ArrayList<char[]> data1 = new ArrayList<char[]>(); ArrayList<char[]> data2 = createData(); displayData(data2);

我是一个帮助年轻学生学习编程的学生。其中一些已获得代码:

public class student {
    public static void main(String[] args) {
        ArrayList<char[]> data1 = new ArrayList<char[]>();
        ArrayList<char[]> data2 = createData();
        displayData(data2);
    }
    
    public static ArrayList<char[]> createData(){
        ArrayList<char[]> res = new ArrayList<char[]>();
        for(int index = 'A'; index<='Z'; index++) {
            char[] temp = new char[1+(index - 'A')];
            for(int count=0;count<temp.length;count++) {
                temp[count] = (char) ('A' + count);
            }
            res.add(temp);
        }
        return res;
    }
    
    public static void displayData(ArrayList<char[]> values) {
        
    }
这意味着要打印字母表,如:

A

AB

ABC

等等。 然而,我自己在displayData方法中遇到了问题


感谢您的帮助,提前谢谢

你可以这样写:

public static void displayData(ArrayList<char[]> values) {
     for(char[] s : values){
        for(char c : s){
            System.out.print(c);
        }
        System.out.println();
    }
}
这会给你你想要的结果


第一个高级for是循环遍历ArrayList的每个条目。第二个是循环遍历ArrayList中一个条目内的每个条目。

您可以这样编写:

public static void displayData(ArrayList<char[]> values) {
     for(char[] s : values){
        for(char c : s){
            System.out.print(c);
        }
        System.out.println();
    }
}
这会给你你想要的结果


第一个高级for是循环遍历ArrayList的每个条目。第二种方法是循环遍历ArrayList中某个条目内的每个条目。

您可以使用单个函数

public static void displayData() {
        int start = 'A';
        int finish = 'Z';
        for (int i = start ; i < finish; i++){
            for (int j = start ; j <= i; j++) {
                System.out.print((char)j);
            }
            System.out.println();
        }
    }

你可以单功能完成

public static void displayData() {
        int start = 'A';
        int finish = 'Z';
        for (int i = start ; i < finish; i++){
            for (int j = start ; j <= i; j++) {
                System.out.print((char)j);
            }
            System.out.println();
        }
    }

您可以将问题分为两部分:

第1部分-。打印字母表:

private static void printAlphabet(char[] alphabet) {

        for(char c : alphabet) {
            System.out.print(c);
        }

}
第2部分-。使用最后一种方法,您可以在每次打印alphatet时在末尾添加新行来打印所有字母表:

public static void displayData(ArrayList<char[]> values) {

         for (char[] alphabet: values) {
             printAlphabet(alphabet);
             System.out.println();
         }

}
好处:您可以使用流式和函数式编程:

public static void displayDataFunctional(ArrayList<char[]> values) {

         values.stream().forEach((alphabet) -> printAlphabet(alphabet));

}

建议:按照惯例,Java类型名称通常以大写字母开头。

您可以将问题分为两部分:

第1部分-。打印字母表:

private static void printAlphabet(char[] alphabet) {

        for(char c : alphabet) {
            System.out.print(c);
        }

}
第2部分-。使用最后一种方法,您可以在每次打印alphatet时在末尾添加新行来打印所有字母表:

public static void displayData(ArrayList<char[]> values) {

         for (char[] alphabet: values) {
             printAlphabet(alphabet);
             System.out.println();
         }

}
好处:您可以使用流式和函数式编程:

public static void displayDataFunctional(ArrayList<char[]> values) {

         values.stream().forEach((alphabet) -> printAlphabet(alphabet));

}
建议:按照惯例,Java类型名称通常以大写字母开头。

稍有改进

使用列表:

工作:

无清单:

工作:

使用流:

稍加改进

使用列表:

工作:

无清单:

工作:

使用流:


可以采用的一些方法如下:

通过使用增强的for循环: 通过混合使用这两种方法,增强了for循环和基于索引的for循环: 通过使用流API:
可以采用的一些方法如下:

通过使用增强的for循环: 通过混合使用这两种方法,增强了for循环和基于索引的for循环: 通过使用流API: 短的羔羊

短的羔羊


顺便说一句,您可以使用char[][]而不是char数组的ArrayList,因为字母表总是26个字母。ChrisAmwell-如果其中一个答案解决了您的问题,您可以通过将其标记为已接受来帮助社区。公认的答案有助于未来的访问者自信地使用解决方案。检查以了解如何操作。@ChrisAmwell您能接受以下答案之一或解释这些答案不起作用的原因吗?顺便说一句,您可以使用char[][]而不是char数组列表,因为字母表总是26个字母。ChrisAmwell-如果其中一个答案解决了您的问题,您可以通过将社区标记为已接受来帮助社区。公认的答案有助于未来的访问者自信地使用解决方案。检查以了解如何做。@ChrisAmwell您能接受以下答案之一或解释为什么这些答案不起作用吗?
public static void displayData(ArrayList<char[]> values) {
    for (char[] arr : values) {
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i]);
        }
        System.out.println();
    }
}
public static void displayData(ArrayList<char[]> values) {
    for (int i = 0; i < values.size(); i++) {
        for (char ch : values.get(i)) {
            System.out.print(ch);
        }
        System.out.println();
    }
}
public static void displayData(ArrayList<char[]> values) {
    for (char[] arr : values) {
        System.out.println(new String(arr));
    }
}
public static void displayData(ArrayList<char[]> values) {
    values.stream().forEach(arr -> System.out.println(new String(arr)));
}
public void displayData(ArrayList<char[]> values) {
  values.stream().forEach( arr -> System.out.println( arr ) );
}