1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > PTA 7-33 空心字母金字塔(StringBuilder应用实例)

PTA 7-33 空心字母金字塔(StringBuilder应用实例)

时间:2021-12-04 23:01:37

相关推荐

PTA 7-33 空心字母金字塔(StringBuilder应用实例)

7-33 空心字母金字塔 (10 分)

输入一个大写的英文字母,输出空心的字母金字塔。

输入格式:

一个大写英文字母。

输出格式:

一个空心的大写英文字母金字塔,其中第1层的“A”在第1行的第40列,列从1开始计数。

输入样例:

E

输出样例:AB BC CDDEEEEEEEEE

import java.util.Scanner;public class Main {public static void main(String args[]) {Scanner scanner = new Scanner(System.in);String N = scanner.nextLine();StringBuilder b = new StringBuilder(" "); //39个空格String c = " ";int k = 1;for (char i = 'A'; i < N.charAt(0); i++) {System.out.print(b);if (i == 'A'){System.out.println(i);}else {System.out.print(i);System.out.print(c);System.out.println(i);c += " ";}b.delete(0,1);k++;}System.out.print(b);for (int i = 0; i < 2*k -1; i++) {System.out.print(N);}}}

代码解释

1.StringBuilder 在程序开发过程中,我们常常碰到字符串连接的情况,方便和直接的方式是通过"+"符号来实现,但是这种方式达到目的的效率比较低,且每执行一次都会创建一个String对象,即耗时,又浪费空间。使用StringBuilder类就可以避免这种问题的发生。一、创建Stringbuilder对象StringBuilder strB = new StringBuilder(); 1、append(String str)/append(Char c):字符串连接System.out.println("StringBuilder:"+strB.append("ch").append("111").append('c'));//return "StringBuilder:ch111c"2、toString():返回一个与构建起或缓冲器内容相同的字符串System.out.println("String:"+strB.toString());//return "String:ch111c"3、appendcodePoint(int cp):追加一个代码点,并将其转换为一个或两个代码单元并返回thisSystem.out.println("StringBuilder.appendCodePoint:"+strB.appendCodePoint(2));//return "StringBuilder.appendCodePoint:ch111c"4、setCharAt(int i, char c):将第 i 个代码单元设置为 c(可以理解为替换)strB.setCharAt(2, 'd');System.out.println("StringBuilder.setCharAt:" + strB);//return "StringBuilder.setCharAt:chd11c"5、insert(int offset, String str)/insert(int offset, Char c):在指定位置之前插入字符(串)System.out.println("StringBuilder.insertString:"+ strB.insert(2, "LS"));//return "StringBuilder.insertString:chLSd11c"System.out.println("StringBuilder.insertChar:"+ strB.insert(2, 'L'));//return "StringBuilder.insertChar:chLLSd11c"6、delete(int startIndex,int endIndex):删除起始位置(含)到结尾位置(不含)之间的字符串System.out.println("StringBuilder.delete:"+ strB.delete(2, 4));//return "StringBuilder.delete:chSd11c"

2.charAt()charAt() 方法用于返回指定索引处的字符。索引范围为从 0 到 length() - 1。3.使用string N的原因是为了可以在循环中使用,不引起数据类型错误。4. b.delete(0,1); 使用b.delete 每循环一次减去一个39个空格中的一个。5.for (char i = 'A'; i < N.charAt(0); i++)循环次数小于N.charAt(0)时,System.out.print(b);//输出39个空格if (i == 'A'){System.out.println(i);}else {System.out.print(i);System.out.print(c);System.out.println(i);c += " ";//下一个字母中间增加2个空格}b.delete(0,1);//每循环一次删除一个空格k++;循环次数等于N.charAt(0)时,System.out.print(b);//输出39个空格for (int i = 0; i < 2*k -1; i++) {System.out.print(N);//输出2*k -1个最后字母}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。