如何逐行打印字母表?
How do I print the alphabet line by line?
我是一名帮助低年级学生学习编程的学生。其中一些已获得代码:
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 的每个条目。第二个 for 循环遍历 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();
}
}
您可以将问题分为两部分:
第 1 部分 -.打印字母表:
private static void printAlphabet(char[] alphabet) {
for(char c : alphabet) {
System.out.print(c);
}
}
第 2 部分 -.使用最后一种方法,您可以打印所有字母表,每次打印字母表时在末尾添加一个新行:
public static void displayData(ArrayList<char[]> values) {
for (char[] alphabet: values) {
printAlphabet(alphabet);
System.out.println();
}
}
奖励:您可以使用 Stream 和函数式编程:
public static void displayDataFunctional(ArrayList<char[]> values) {
values.stream().forEach((alphabet) -> printAlphabet(alphabet));
}
建议:按照惯例,Java 类型名称通常以大写字母开头。
一点改进
使用列表:
import java.util.ArrayList;
import java.util.List;
public class Student {
public static void main(String[] args) {
List<String> lines = createList((int) 'A', (int) 'Z');
print(lines);
}
public static List<String> createList(int min, int max) {
List<String> lines = new ArrayList<>();
for (int i = 0; i <= max - min; i++) {
StringBuilder s = new StringBuilder();
for (int j = min; j <= min + i; j++) {
s.append(Character.toString((char) j));
}
lines.add(s.toString());
}
return lines;
}
public static void print(List<String> lines) {
for (String line : lines)
System.out.println(line);
}
}
工作:https://www.jdoodle.com/embed/v0/21iL
没有列表:
public class Student {
public static void main(String[] args) {
print((int) 'A', (int) 'Z');
}
public static void print(int min, int max) {
for (int i = 0; i <= max - min; i++) {
StringBuilder s = new StringBuilder();
for (int j = min; j <= min + i; j++) {
s.append(Character.toString((char) j));
}
System.out.println(s.toString());
}
}
}
工作:https://www.jdoodle.com/embed/v0/21iP
使用流:
import java.util.stream.IntStream;
import java.util.stream.Stream;
public class Student {
public static void main(String[] args) {
Stream<String> lines = createList((int) 'A', (int) 'Z');
lines.forEach(System.out::println);
}
public static String row(int i, int min, int max) {
StringBuilder s = new StringBuilder();
IntStream.rangeClosed(min, min + i).forEach(j -> s.append(Character.toString((char) j)));
return s.toString();
}
public static Stream<String> createList(int min, int max) {
return IntStream.rangeClosed(0, max - min).mapToObj(i -> row(i, min, max));
}
}
一些可以完成的方法如下:
- 通过使用增强的
for
循环:
public static void displayData(ArrayList<char[]> values) {
for (char[] arr : values) {
for (char ch : arr) {
System.out.print(ch);
}
System.out.println();
}
}
- 通过使用基于索引的
for
循环:
public static void displayData(ArrayList<char[]> values) {
for (int i = 0; i < values.size(); i++) {
for (int j = 0; j < values.get(i).length; j++) {
System.out.print(values.get(i)[j]);
}
System.out.println();
}
}
- 通过混合增强的
for
循环和基于索引的 for
循环:
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();
}
}
- 通过使用
for
循环和 String(char[])
构造函数:
public static void displayData(ArrayList<char[]> values) {
for (char[] arr : values) {
System.out.println(new String(arr));
}
}
- 通过使用 Stream API:
public static void displayData(ArrayList<char[]> values) {
values.stream().forEach(arr -> System.out.println(new String(arr)));
}
更短的 lambda
public void displayData(ArrayList<char[]> values) {
values.stream().forEach( arr -> System.out.println( arr ) );
}
我是一名帮助低年级学生学习编程的学生。其中一些已获得代码:
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 的每个条目。第二个 for 循环遍历 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();
}
}
您可以将问题分为两部分:
第 1 部分 -.打印字母表:
private static void printAlphabet(char[] alphabet) {
for(char c : alphabet) {
System.out.print(c);
}
}
第 2 部分 -.使用最后一种方法,您可以打印所有字母表,每次打印字母表时在末尾添加一个新行:
public static void displayData(ArrayList<char[]> values) {
for (char[] alphabet: values) {
printAlphabet(alphabet);
System.out.println();
}
}
奖励:您可以使用 Stream 和函数式编程:
public static void displayDataFunctional(ArrayList<char[]> values) {
values.stream().forEach((alphabet) -> printAlphabet(alphabet));
}
建议:按照惯例,Java 类型名称通常以大写字母开头。
一点改进
使用列表:
import java.util.ArrayList;
import java.util.List;
public class Student {
public static void main(String[] args) {
List<String> lines = createList((int) 'A', (int) 'Z');
print(lines);
}
public static List<String> createList(int min, int max) {
List<String> lines = new ArrayList<>();
for (int i = 0; i <= max - min; i++) {
StringBuilder s = new StringBuilder();
for (int j = min; j <= min + i; j++) {
s.append(Character.toString((char) j));
}
lines.add(s.toString());
}
return lines;
}
public static void print(List<String> lines) {
for (String line : lines)
System.out.println(line);
}
}
工作:https://www.jdoodle.com/embed/v0/21iL
没有列表:
public class Student {
public static void main(String[] args) {
print((int) 'A', (int) 'Z');
}
public static void print(int min, int max) {
for (int i = 0; i <= max - min; i++) {
StringBuilder s = new StringBuilder();
for (int j = min; j <= min + i; j++) {
s.append(Character.toString((char) j));
}
System.out.println(s.toString());
}
}
}
工作:https://www.jdoodle.com/embed/v0/21iP
使用流:
import java.util.stream.IntStream;
import java.util.stream.Stream;
public class Student {
public static void main(String[] args) {
Stream<String> lines = createList((int) 'A', (int) 'Z');
lines.forEach(System.out::println);
}
public static String row(int i, int min, int max) {
StringBuilder s = new StringBuilder();
IntStream.rangeClosed(min, min + i).forEach(j -> s.append(Character.toString((char) j)));
return s.toString();
}
public static Stream<String> createList(int min, int max) {
return IntStream.rangeClosed(0, max - min).mapToObj(i -> row(i, min, max));
}
}
一些可以完成的方法如下:
- 通过使用增强的
for
循环:
public static void displayData(ArrayList<char[]> values) {
for (char[] arr : values) {
for (char ch : arr) {
System.out.print(ch);
}
System.out.println();
}
}
- 通过使用基于索引的
for
循环:
public static void displayData(ArrayList<char[]> values) {
for (int i = 0; i < values.size(); i++) {
for (int j = 0; j < values.get(i).length; j++) {
System.out.print(values.get(i)[j]);
}
System.out.println();
}
}
- 通过混合增强的
for
循环和基于索引的for
循环:
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();
}
}
- 通过使用
for
循环和String(char[])
构造函数:
public static void displayData(ArrayList<char[]> values) {
for (char[] arr : values) {
System.out.println(new String(arr));
}
}
- 通过使用 Stream API:
public static void displayData(ArrayList<char[]> values) {
values.stream().forEach(arr -> System.out.println(new String(arr)));
}
更短的 lambda
public void displayData(ArrayList<char[]> values) {
values.stream().forEach( arr -> System.out.println( arr ) );
}