文章目录
在Java中,显示一个等腰三角形通常指的是在控制台输出这样的图形。以下是几种不同的解决方法和它们的代码示例:
方法一:使用嵌套的for循环
这种方法通过两个嵌套的for循环来输出等腰三角形。外部循环控制行数,内部循环控制每行的输出内容。
public class IsoscelesTriangle {
public static void main(String[] args) {
int height = 5; // 三角形的高度
for (int i = 0; i < height; i++) {
// 打印空格
for (int j = 0; j < height - i - 1; j++) {
System.out.print(" ");
}
// 打印星号
for (int k = 0; k < 2 * i + 1; k++) {
System.out.print("*");
}
// 换行
System.out.println();
}
}
}
方法二:使用String的repeat方法(Java 11及以上)
在Java 11及以上版本中,可以使用String
类的repeat
方法来简化空格和星号的打印。
public class IsoscelesTriangle {
public static void main(String[] args) {
int height = 5; // 三角形的高度
for (int i = 0; i < height; i++) {
System.out.println(" ".repeat(height - i - 1) + "*".repeat(2 * i + 1));
}
}
}
方法三:使用StringBuilder
对于更大的三角形或更复杂的输出,可以使用StringBuilder
来提高性能。
下滑查看解决方法
public class IsoscelesTriangle {
public static void main(String[] args) {
int height = 5; // 三角形的高度
for (int i = 0; i < height; i++) {
StringBuilder sb = new StringBuilder();
// 添加空格
for (int j = 0; j < height - i - 1; j++) {
sb.append(" ");
}
// 添加星号
for (int k = 0; k < 2 * i + 1; k++) {
sb.append("*");
}
// 输出并换行
System.out.println(sb.toString());
}
}
}
方法四:使用Java 8的Stream API(虽然这不是最高效的方式,但很有趣)
这种方法使用Java 8的Stream API来生成三角形,但这通常不用于性能敏感的代码。
import java.util.IntStream;
public class IsoscelesTriangle {
public static void main(String[] args) {
int height = 5; // 三角形的高度
for (int i = 0; i < height; i++) {
System.out.println(
IntStream.range(0, height - i - 1).mapToObj(j -> " ").reduce("", String::concat) +
IntStream.range(0, 2 * i + 1).mapToObj(j -> "*").reduce("", String::concat)
);
}
}
}