题解 | #动态字符串#

动态字符串

https://www.nowcoder.com/practice/e2c51a6f126b41f9be403376c7adea15

解题思路:

(1)由于要从末尾开始,每3个字符插入一个逗号;所以可以用循环解决;

  • 循环的开始条件length-3,因为一开始最后一个元素是不需要插入逗号
  • 循环结束条件:i<=0时循环结束
  • 迭代条件是:i-=3;通过移动i指针来确定插入数据的位置

(2)细节:

  • String类并没有提供插入数据的方法,所以可以用StringBuffer或者StringBuilder来处理字符串

代码。StringBuffer是线程安全的,所以效率会比StringBuilder慢,StringBuilder是线程不安全的,会有线程同步的问题,也就是在多线程环境下,多个线程同一时刻访问数据,会导致数据的混乱,可以通过加线程同步锁解决;

  • 对于StringBuffer的长度length,可以不需要我们自定义一个变量进行保存和维护,底层有count变量去记录字符串的长度,我们进行添加的时候是不会修改到我们保存的i变量,但是底层的count会变化

具体代码如下:

Scanner scanner = new Scanner(System.in);
        String str = scanner.next();
        StringBuffer sb  = new StringBuffer(str);
        //write your code here......
        for(int i = str.length() - 3;i >= 0;i -= 3){
            sb.insert(i,",");
        }
        System.out.println(sb);

全部评论

相关推荐

xxxxOxo:该催就催,想要你的不会因为催就挂,催了就挂的是因为本来就要挂你
点赞 评论 收藏
分享
04-05 21:13
邯郸学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务