4-3的编程练习
public class StringDemo {
public static void main(String[] args) {
//定义字符串"abc"
StringBuilder s1=new StringBuilder("abc");
//经过处理得到字符串"fed---cba"
s1.replace(0,3,"fed---cba");
//进一步变换得到字符串"fedcba"
System.out.println(s1.delete(3,6));
}
}
1、 定义字符串"abc"
2、 使之经过处理得到字符串"fed---cba",并进一步得到字符串"fedcba"
老师,代码打完了,但是感觉好奇怪啊,即便是运行成功,也觉得自己是不是用的方法还是不够好,是不是有更好的解决方式呢?我把任务要求也贴了出来,老师看一下,谢谢!
正在回答
同学你好。还是分条回复:
1、因为replace方法中,实现了如果索引不存在指定字符则延伸到序列的结尾。所以同学即便是指定了3,也是将下标从0到2的部分进行了删除。
2、reverse方法的用途是将字符串中的字符倒序,reverse是StringBuilder中的方法,String中没有。只要是StringBuilder的对象,直接调用就可以了。调用后这个此对象的字符顺序就会反转。
如果解答了同学的疑问,望采纳~
祝学习愉快~
同学你好。下面来一条条解答你的疑惑:
1、replace方法一般用来替换一个字符串的局部,并且子字符串从指定的开始处开始并延伸到索引结束处的字符, 如果不存在指定字符则延伸到序列的结尾。首先删除子字符串中的字符,然后在第一个参数指定的位置处插入指定的String。
因此,同学使用replace(0,3,"fed---cba")就有失妥当。且不说s1只有三个字符,下标从0开始,下标3 是不存在的。利用replace替换也将之前赋值给它的"abc"尽数删去。
2、同学可以仔细考虑一下题目为什么要求先创建"abc"?"abc"和"cba"是同样的三个字符,它们之间是什么关系呢?说到这里同学可能明白了。题目是要使用reverse方法将字符串逆序。
那么先逆序abc再追加还是先拼接后追加呢?考虑到题目是考察StringBuilder的常用方法,那么就要多借用它已实现的方法,减少多余步骤。
3、综上所述,我们可以这样实现:
//经过处理得到字符串"fed---cba" System.out.println(s1.append("---def")); // 得到 abc---def System.out.println(s1.reverse()); // 得到 fed---cba //进一步变换得到字符串"fedcba" System.out.println(s1.delete(3, 6));
如果解答了同学的疑问,望采纳~
祝学习愉快~
相似问题
登录后可查看更多问答,登录/注册
- 参与学习 人
- 提交作业 3802 份
- 解答问题 11489 个
本阶段带你迈入Java世界,学习Java必备基础知识,基础语法、面向对象思想以及常用工具类的使用。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星