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

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

输入格式:
一个大写英文字母。

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

输入样例:
E

输出样例:AB BC   CD     DEEEEEEEEE
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):追加一个代码点,并将其转换为一个或两个代码单元并返回this
System.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个最后字母}

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

  1. PTA 空心字母金字塔

    7-7 空心字母金字塔 分数 10 作者 翁恺 单位 浙江大学 输入一个大写的英文字母,输出空心的字母金字塔. 输入格式: 一个大写英文字母. 输出格式: 一个空心的大写英文字母金字塔,其中第1层的& ...

  2. 7-123 空心字母金字塔 (10 分)输入一个大写的英文字母,输出空心的字母金字塔。

    7-123 空心字母金字塔 (10 分) 输入一个大写的英文字母,输出空心的字母金字塔. 输入格式: 一个大写英文字母. 输出格式: 一个空心的大写英文字母金字塔,其中第1层的"A" ...

  3. PTA 空心字母金字塔+数字金字塔+字母金字塔

    输入一个大写的英文字母,输出空心的字母金字塔. 输入格式: 一个大写英文字母. 输出格式: 一个空心的大写英文字母金字塔,其中第1层的"A"在第1行的第40列,列从1开始计数. 输 ...

  4. [PTA]7-123 空心字母金字塔(c语言)

    输入一个大写的英文字母,输出空心的字母金字塔. 输入格式: 一个大写英文字母. 输出格式: 一个空心的大写英文字母金字塔,其中第1层的"A"在第1行的第40列,列从1开始计数. 输 ...

  5. PTA 7-123 空心字母金字塔

    输入一个大写的英文字母,输出空心的字母金字塔. 输入格式: 一个大写英文字母. 输出格式: 一个空心的大写英文字母金字塔,其中第1层的"A"在第1行的第40列,列从1开始计数. 输 ...

  6. 7-55 空心字母金字塔 (10 分)

    输入一个大写的英文字母,输出空心的字母金字塔. 输入格式: 一个大写英文字母. 输出格式: 一个空心的大写英文字母金字塔,其中第1层的"A"在第1行的第40列,列从1开始计数. 输 ...

  7. 空心字母金字塔 (10 分)

    输入一个大写的英文字母,输出空心的字母金字塔. 输入格式: 一个大写英文字母. 输出格式: 一个空心的大写英文字母金字塔,其中第1层的"A"在第1行的第40列,列从1开始计数. 输 ...

  8. 7-123 空心字母金字塔

    一.题目要求 输入一个大写的英文字母,输出空心的字母金字塔. 输入格式: 一个大写英文字母. 输出格式: 一个空心的大写英文字母金字塔,其中第1层的"A"在第1行的第40列,列从1 ...

  9. 7-20 空心字母金字塔

    输入一个大写的英文字母,输出空心的字母金字塔. 输入格式: 一个大写英文字母. 输出格式: 一个空心的大写英文字母金字塔,其中第1层的"A"在第1行的第40列,列从1开始计数. 输 ...

最新文章

  1. tornado 异步两种实现形式 通过回调可以利用
  2. rust房子 如何拆除_小产权房“依法拆除”?中央新文件透露“1个新信号”
  3. PL/SQL developer执行的sql文件编码
  4. 新鲜出炉的电信诈骗经历
  5. 路径中斜杠/、点斜杠./、点点斜杠../的区别
  6. GY歌谣之读懂每行代码(飞智) 2020 10 16 Duplicate keys detected
  7. dategurd oracle_Oracle之11g DataGuard
  8. Microsoft Edge 浏览器如何打开Axure RP文件
  9. 出租车计费程序php,出租车计价器VHDL程序
  10. 电气火灾监控系统在地铁供配电系统中的应用
  11. 上海是怎么错失这些年的互联网机遇的?
  12. Linux Kernel Security全景图系列之开篇
  13. spring-aop切面
  14. vue3 动态传值给子组件
  15. 这几天,聊到的最多的就是互通有无
  16. one_gadget的安装与使用
  17. 微信小程序上拉触底事件函数onReachBottom不触发的解决方案
  18. C#实现打字小游戏(一)
  19. 腾讯 阿里 华为的岗位薪资情况概述
  20. [zz]各大IT公司待遇

热门文章

  1. mysql存储过程计算阶乘,为什么计算阶乘 ,7的阶乘是5040
  2. 5GNR R17 PLMN选择和SNPN选择
  3. mac环境下ananconda安装失败,已经设置为所有来源可安装
  4. 推荐免费好用的地图绘制软件Global Mapper开心版V24.0 Build 092022 x64
  5. plantuml使用
  6. 帝国理工学院计算机博士,帝国理工大学博士:从0到1,一位博士生的蜕变之路...
  7. 计算机证书图片无法保存,win7自带截图工具保存不了怎么办|win7截图工具无法保存的修复方法...
  8. unity调android ios 浏览器 uniwebview2.1使用
  9. 2018微策略用户峰会北京站举行 企业级BI魅力无处不
  10. 气动旋转接头如何使用