StringBuilder类

1.1 StringBuilder类概述
StringBuilder:是一个可变的字符串。字符串缓冲区类。
String和StringBuilder的区别:
String的内容是固定的
StringBuilder的内容是可变的
1.1.1 +=拼接字符串耗费内存原因:
每次拼接都会产生新的字符串对象,而利用StringBuilder来拼接字符串自始至终用的都是同一个StringBuilder容器
StringBuilder类
1.2 StringBuilder类的常用方法
A:构造方法:
StringBuilder()
B:成员方法:
public int capacity():返回当前容量 (理论值)
public int length():返回长度(已经存储的字符个数)
public StringBuilder append(任意类型):添加数据,并返回自身对象
public StringBuilder reverse():反转功能
1.2.1 案例代码十三:

package com.itheima_01;
/** StringBuilder:是一个可变的字符串。字符串缓冲区类。** String和StringBuilder的区别:* String的内容是固定的。* StringBuilder的内容是可变的。** 构造方法:* StringBuilder()** 成员方法:* public int capacity():返回当前容量* public int length():返回长度(字符数)** 容量:理论值* 长度:实际值*/
public class StringBuilderDemo {
public static void main(String[] args) {
//创建对象
StringBuilder sb = new StringBuilder();
System.out.println("sb:"+sb);
System.out.println("sb.capacity():"+sb.capacity());
System.out.println("sb.length():"+sb.length());
}
}

1.2.2 案例代码十四:

package com.itheima_02;
/** 添加功能*        public StringBuilder append(任意类型):添加数据,并返回自身对象* 反转功能*        public StringBuilder reverse()*/
public class StringBuilderDemo {
public static void main(String[] args) {
//创建对象
StringBuilder sb = new StringBuilder();
//public StringBuilder append(任意类型)
//StringBuilder sb2 = sb.append("hello");
/*
System.out.println("sb:"+sb);
System.out.println("sb2:"+sb2);
System.out.println(sb == sb2); //true
*/
/*
sb.append("hello");
sb.append("world");
sb.append(true);
sb.append(100);
*/
//链式编程
sb.append("hello").append("world").append(true).append(100);
System.out.println("sb:"+sb);
//public StringBuilder reverse()
sb.reverse();
System.out.println("sb:"+sb);
}
}

1.3 StringBuilder案例1.3.1 案例一需求:
StringBuilder和String通过方法完成相互转换
1.3.1.1 案例代码十五:

package com.itheima_03;
/** StringBuilder和String的相互转换** StringBuilder -- String* public String toString():通过toString()就可以实现把StringBuilder转成String** String -- StringBuilder* StringBuilder(String str):通过构造方法就可以实现把String转成StringBuilder*/
public class StringBuilderTest {
public static void main(String[] args) {
//StringBuilder -- String
/*
StringBuilder sb = new StringBuilder();
sb.append("hello").append("world");
String s = sb.toString();
System.out.println(s);
*/
//String -- StringBuilder
String s = "helloworld";
StringBuilder sb = new StringBuilder(s);
System.out.println(sb);
}
}

1.3.2 案例二需求:
利用StringBuilder把数组拼接成一个字符串
举例:
int[] arr = {1,2,3};
结果:
[1, 2, 3]
1.3.2.1 案例代码十六:

package com.itheima_03;
/** 把数组拼接成一个字符串* 举例:* int[] arr = {1,2,3};* 结果:* [1, 2, 3]*/
public class StringBuilderTest2 {
public static void main(String[] args) {
//定义一个数组
int[] arr = {1,2,3};
//写方法实现拼接
//调用方法
String s = arrayToString(arr);
//输出结果
System.out.println("s:"+s);
}
/** 两个明确:* 返回值类型:String* 参数列表:int[] arr*/
public static String arrayToString(int[] arr) {
StringBuilder sb = new StringBuilder();
//[1, 2, 3]
sb.append("[");
for(int x=0; x<arr.length; x++) {
if(x==arr.length-1) {
sb.append(arr[x]);
}else {
sb.append(arr[x]).append(", ");
}
}
sb.append("]");
String result = sb.toString();
return result;
}
}

1.3.3 案例三需求:
利用StringBuilder完成字符串反转
1.3.3.1 案例代码十七:

package com.itheima_03;import java.util.Scanner;/** 把字符串反转** 分析:* A:键盘录入一个字符串* B:写方法实现反转* String -- StringBuilder -- reverse() -- String* C:调用方法* D:输出结果*/
public class StringBuilderTest3 {
public static void main(String[] args) {
//键盘录入一个字符串
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个字符串:");
String s = sc.nextLine();
//写方法实现反转
//调用方法
String result = myReverse(s);
//输出结果
System.out.println("result:"+result);
}
/** 两个明确:* 返回值类型:String* 参数列表:String*/
public static String myReverse(String s) {
//String -- StringBuilder -- reverse() -- String
StringBuilder sb = new StringBuilder(s);
sb.reverse();
String result = sb.toString();
return result;
}
}

1.3.4 案例四需求:
判断一个字符串是否是对称字符串
例如"abc"不是对称字符串,"aba"、"abba"、"aaa"、"mnanm"是对称字符串
1.3.4.1 案例代码十八:

package com.itheima_03;
import java.util.Scanner;/** 判断一个字符串是否是对称字符串* 例如"abc"不是对称字符串,"aba"、"abba"、"aaa"、"mnanm"是对称字符串** 分析:* A:键盘录入一个字符串* B:写方法实现判断一个字符串是否是对称字符串* 把字符串反转,和反转前的字符串进行比较,如果内容相同,就说明是对称字符串* C:调用方法* D:输出结果*/
public class StringBuilderTest4 {
public static void main(String[] args) {
//键盘录入一个字符串
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个字符串:");
String s = sc.nextLine();
//写方法实现判断一个字符串是否是对称字符串
//调用方法
boolean b = isSymmetry(s);
//输出结果
System.out.println("b:"+b);
}
/** 两个明确:* 返回值类型:boolean* 参数列表:String s*/
public static boolean isSymmetry(String s) {
//把字符串反转,和反转前的字符串进行比较,如果内容相同,就说明是对称字符串
StringBuilder sb = new StringBuilder(s);
sb.reverse();
String result = sb.toString();
return result.equals(s);
}
}

转载于:https://blog.51cto.com/13587708/2084585

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/452441.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何使用搜索技巧来成为一名高效的程序员

没有人是完全独立的孤岛&#xff0c;每个人都是整体的一部分。—— 约翰多恩对于缺乏编程知识的人来说&#xff0c;完全有可能编写一个网页或小程序。如果在用Google搜索相关示例时幸运的话&#xff0c;可以搜到现成的代码。即使是经验丰富的程序员&#xff0c;通常也会为了节省…

电开大计算机应用基础作业,2016年电大-电大计算机应用基础作业 答案.doc

2016年电大-电大计算机应用基础作业 答案计算机作业2单项选择题&#xff1a;第1题:在Word中编辑文本时&#xff0c;编辑区显示的“水印”在打印时( )出现在纸上。(2分)A、不会B、全部C、一部分D、大部分第2题:Word文档以文件形式存放于磁盘中&#xff0c;其默认的文件扩展名为(…

软件测试的步骤

大型软件系统的测试过程基本上由模块测试、子系统测试、系统测试、验收测试和平行运行等五个步骤组成。 1.模块测试 在设计得好的软件系统中&#xff0c;每个模块完成一个清晰定义的子功能&#xff0c;而且这个子功能和同级其他模块的功能之间没有相互依赖关系。因此&#xff…

linux系统优化思路

文章目录一. 影响linux性能的因素1.系统硬件资源2.操作系统相关资源3.应用程序软件资源二. 分析系统性能涉及的人员1.Linux运维人员2.系统架构设计人员3.软件开发人员三. 系统性能分析工具四.思路总结一. 影响linux性能的因素 1.系统硬件资源 1&#xff09;cpu 2&#xff09;…

递归锁

from threading import Thread,RLock import timemutexAmutexBRLock()#一个线程拿到锁&#xff0c;counter加1,该线程内又碰到加锁的情况&#xff0c;则counter继续加1&#xff0c; #这期间所有其他线程都只能等待&#xff0c;等待该线程释放所有锁&#xff0c;即counter递减到…

UI体系的本质是结构化存在

UI体系的本质是结构化存在&#xff1b; UI系统的问题需要使用结构化的思维来处理。

什么是视图

视图是存储在数据库中的查询的SQL 语句&#xff0c;它主要出于两种原因&#xff1a;安全原因&#xff0c; 视图可以隐藏一些数据&#xff0c;如&#xff1a;社会保险基金表&#xff0c;可以用视图只显示姓名&#xff0c;地址&#xff0c;而不显示社会保险号和工资数等&#xff…

30分钟,让你成为一个更好的程序员

我相信激励是非常重要的。这也是为什么我常常把时间管理&#xff08;这些书激励我不管改进我的时间管理方法&#xff09;的书和软件开发拿出来看看。我最近刚看完一本 书&#xff0c;“Apprenticeship Patterns: Guidance for the Aspiring Software Craftsman”。这本书推动我…

如何启用计算机的远程服务,远程桌面服务,教您怎么打开远程桌面服务

远程桌面可以通过控制另一台电脑的功能&#xff0c;让网络管理员可以在家中安全的控制单位的服务器&#xff0c;而且这个功能是系统内置的&#xff0c;所以比使用其他第三方的远程控制工具更方便。那么我的重点来了&#xff0c;我今天就教你们怎么打开桌面远程服务&#xff0c;…

pipenv相关指令

pip install pipenv 安装pipenv pipenv install 创建虚拟环境 &#xff08;项目根目录下&#xff09; pipenv shell     进入虚拟环境&#xff08;如果不存在&#xff0c;则创建并进入虚拟环境&#xff09; pipenv install flask   安装模块 pipenv uninstall flask 卸…

简易多线程爬虫框架

本文首发于知乎 本文使用多线程实现一个简易爬虫框架&#xff0c;让我们只需要关注网页的解析&#xff0c;不用自己设置多线程、队列等事情。调用形式类似scrapy&#xff0c;而诸多功能还不完善&#xff0c;因此称为简易爬虫框架。 这个框架实现了Spider类&#xff0c;让我们只…

【小松教你手游开发】【unity实用技能】给每个GameObject的打开关闭加上一个渐变...

在游戏开发中&#xff0c;经常会因为直接将GameObject&#xff0c;setActive的方式打开关闭&#xff0c;这种方式效果太过生硬而给它加上一个Tween 可能是AlphaTween或者ScaleTween。 再加上一个PlayTween来做控制。 这样子需要在每个GameObject上加上这几个Component不说&…

静态网页和动态网页

静态网页是指不应用程序而直接或间接制作成html的网页&#xff0c;这种网页的内容是固定的&#xff0c;修改和更新都必须要通过专用的网页制作工具&#xff0c;比如Dreamweaver。动态网页是指使用网页脚本语言&#xff0c;比如php、asp、asp.net等&#xff0c;通过脚本将网站内…

在微型计算机中 如果电源突然中断,微型计算机在工作中电源突然中断,则其中的信息全部丢失,再次通电后也不能恢复的..._考试资料网...

请根据下面的文字材料&#xff0c;完成一节课的教学设计。 丝绸之路 一座古朴典雅的“丝绸之路”巨型石雕&#xff0c;矗立在西安市玉祥门外。那驮着彩绸的一峰峰骆驼&#xff0c;高鼻凹眼的西域商人&#xff0c;精神饱满&#xff0c;栩栩如生。商人们在这个东方大都市开了眼界…

Vmware上安装RedHat Linux 7.3操作系统手册

文章目录1&#xff0e;点击“创建新的虚拟机”&#xff0c;勾选“自定义”选项&#xff0c;点击一步&#xff1b;2&#xff0e;默认选择最高版本的workstations&#xff0c;点击下一步&#xff1b;3&#xff0e;选择“稍后安装操作系统”&#xff0c;点击下一步&#xff1b;4&a…

软件开发的“三重门”

自从上次写了“程序员技术练级攻略” 以来&#xff0c;就觉得似乎还有很多东西没有谈到&#xff0c;但当时没有继续思考了。而春节前有人问我&#xff0c;是做底层技术&#xff0c;还是做业务。这问题让我思考了很多&#xff0c;不由自主地回顾了一 下我这十多年的软件开发经历…

软件工程15 个人阅读作业1

Task1&#xff1a;注册个人博客账号 个人博客地址 https://www.cnblogs.com/bmr666/ Task2&#xff1a;注册码云账号 码云账号 https://gitee.com/bmr666 Task3&#xff1a;完成博客-阅读与思考 阅读参考材料&#xff0c;并回答下面几个问题&#xff1a; &#xff08;1&#xf…

Windows Server 2008操作系统安装手册

文章目录1&#xff0e;输入语言和其他首选项&#xff0c;然后单击“下一步”继续&#xff1b;2&#xff0e;点击“现在安装”&#xff0c;启动安装程序&#xff1b;3&#xff0e;选择要安装的操作系统&#xff0c;这里选择Windows Server 2008 R2 Enterprise&#xff08;完全安…

云计算机有哪些特征,你知道云计算有哪些核心特征吗?

你知道云计算有哪些核心特征吗?下面跟小编一起来了解下吧!!!1、敏捷&#xff1a;使用户得以快速的&#xff0c;且以低价格的获得技术架构资源。2、应用程序界面API的可达性是指允许软件与云以类似“人机交互这种用户界面设施交互相所相一致的方式”来交互。云计算系统典型的运…

从玩扑克到软件开发

我以前不是做软件开发的。在加入ThoughtWorks两年之前&#xff0c;我主要靠玩扑克为生。当然&#xff0c;如果你曾跟我打听过我前臂上的纹身&#xff0c;那你肯定已然听过我的故事了。要是还没有&#xff0c;等下次我们一起喝一杯时&#xff0c;我可以讲给你听。 我从未因为花…