数字的大小印刷
Number's print in its sizes
我必须打印这样的东西
但我遇到运行时错误和错误的答案
输入:
153
输出:
1:1
5:55555
3:333
获取一个整数并按其大小打印每个数字
import java.util.Scanner;
public class q9774 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int n = input.nextInt();
String entery = Integer.toString(n);
char[] E = entery.toCharArray();
for (char value : E) {
System.out.print(value + ": ");
if (value == 0) continue;
else {
for (int i = 0; i < Integer.parseInt(String.valueOf(value)); i++) {
System.out.print(value);
}
System.out.println();
}
}
}
}
自 Java-11 起,您可以使用 String#repeat
将字符串重复指定次数。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int n = input.nextInt();
String entry = Integer.toString(n);
for (char value : entry.toCharArray()) {
System.out.print(value + ": ");
System.out.println(String.valueOf(value).repeat(Character.getNumericValue(value)));
}
}
}
样本运行:
153
1: 1
5: 55555
3: 333
处理每个字符的另一种方法是将字符串拆分为每个字符,然后重复它的次数等于它的数值。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int n = input.nextInt();
String entry = Integer.toString(n);
for (String s : entry.split("")) {// Split on each character
System.out.print(s + ": ");
System.out.println(s.repeat(Integer.parseInt(s)));
}
}
}
这是一种方法。
- 将 int 转换为字符串,然后转换为
char[]
数组
- 打印后面跟自己重复的字符。
- 任何字符数字 - '0' 是该字符表示的相同数量的数值。所以字符 '7' 的 int 值为 '7' - '0' 或 7.
int i = 153;
for (char c : Integer.toString(i).toCharArray()) {
System.out.printf("%c:%s%n", c, (c+"").repeat(c-'0'));
}
版画
1:1
5:55555
3:333
我为每个数字添加了一个嵌套循环,并根据 j <= i;
条件下字符串中值的索引重复该嵌套循环:
Scanner input = new Scanner(System.in);
int n = input.nextInt();
String entery = Integer.toString(n);
char[] E = entery.toCharArray();
for (int i = 0; i < E.length; i++) {
for (int j = 0; j <= i; j++) {
System.out.print(E[i]);
}
System.out.println();
}
我必须打印这样的东西
但我遇到运行时错误和错误的答案
输入:
153
输出:
1:1
5:55555
3:333
获取一个整数并按其大小打印每个数字
import java.util.Scanner;
public class q9774 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int n = input.nextInt();
String entery = Integer.toString(n);
char[] E = entery.toCharArray();
for (char value : E) {
System.out.print(value + ": ");
if (value == 0) continue;
else {
for (int i = 0; i < Integer.parseInt(String.valueOf(value)); i++) {
System.out.print(value);
}
System.out.println();
}
}
}
}
自 Java-11 起,您可以使用 String#repeat
将字符串重复指定次数。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int n = input.nextInt();
String entry = Integer.toString(n);
for (char value : entry.toCharArray()) {
System.out.print(value + ": ");
System.out.println(String.valueOf(value).repeat(Character.getNumericValue(value)));
}
}
}
样本运行:
153
1: 1
5: 55555
3: 333
处理每个字符的另一种方法是将字符串拆分为每个字符,然后重复它的次数等于它的数值。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int n = input.nextInt();
String entry = Integer.toString(n);
for (String s : entry.split("")) {// Split on each character
System.out.print(s + ": ");
System.out.println(s.repeat(Integer.parseInt(s)));
}
}
}
这是一种方法。
- 将 int 转换为字符串,然后转换为
char[]
数组 - 打印后面跟自己重复的字符。
- 任何字符数字 - '0' 是该字符表示的相同数量的数值。所以字符 '7' 的 int 值为 '7' - '0' 或 7.
int i = 153;
for (char c : Integer.toString(i).toCharArray()) {
System.out.printf("%c:%s%n", c, (c+"").repeat(c-'0'));
}
版画
1:1
5:55555
3:333
我为每个数字添加了一个嵌套循环,并根据 j <= i;
条件下字符串中值的索引重复该嵌套循环:
Scanner input = new Scanner(System.in);
int n = input.nextInt();
String entery = Integer.toString(n);
char[] E = entery.toCharArray();
for (int i = 0; i < E.length; i++) {
for (int j = 0; j <= i; j++) {
System.out.print(E[i]);
}
System.out.println();
}