Java基础知识(六) 字符串
六 字符串
6.1 String字符串
1、String类对象创建
定义String类对象格式:**
1)String 字符串变量名=“字符串常量”;
2)String 字符串变量名=new String(字符串常量);
3)String 字符串变量名;
字符串变量名=“字符串常量”;
public class StringDemo {public static void main(String[] args) {String s1="java is beautiful";//字符串变量String s2=new String("hello java!");String s3;s3="JAVA";System.out.println(s1);System.out.println(s2);System.out.println(s3);}}
2、String类对象的常用基本方法
字符串变量通过点“.”方式调用,即字符串变量.方法名()
1、获取字符串长度方法
length()
2、字符串拼接
concat()
3、字符串比较
equals()
4、字符串代替
replace()
5、去掉字符串首尾空格,返回字符串
trim()
6、返回字符串对象
toString()
7、返回字符串中所有字符转变为大写的新字符串
toUpperCase()
8、获取给定的index处字符串
charAt()public class StringDemo {public static void main(String[] args) {String s1="java is beautiful";//字符串变量String s2=new String("hello java!");String s3;s3="JAVA";String s4 =" java and python ";System.out.println(s1);System.out.println(s2);System.out.println(s3);System.out.println("========================");//获取字符串的长度System.out.println("s1的长度为:"+s1.length());//字符串拼接System.out.println(s1.concat(s2));//s2拼接到s1中//字符串比较System.out.println("JAVA".equals(s3));//两个字符串比较,忽略大小写System.out.println("java".equalsIgnoreCase(s3));//字符串代替 replaceSystem.out.println(s1.replace("java", "JAVA"));//去掉字符串首尾空格,返回字符串System.out.println(s4.trim());//返回字符串对象System.out.println(s4.toString());//返回字符串中所有字符转变为大写的新字符串System.out.println(s4.toUpperCase());//获取给定的index处字符串System.out.println(s4.charAt(1));}}运行结果:
java is beautiful
hello java!
JAVA
========================
s1的长度为:17
java is beautifulhello java!
true
true
JAVA is beautiful
java and pythonjava and python JAVA AND PYTHON
j
3、遍历字符串中的所有字符,并打印
public class BianliDemo {public static void main(String[] args) {String s1="java is beautiful";for(int i=0;i<s1.length();i++) {System.out.print(s1.charAt(i));}}}运行结果:
java is beautiful
4、单词计数案例
方法一:import java.util.Scanner;// 统计单词的个数。
class CountWords {public static void main(String[] args) {// 输入Scanner sc = new Scanner(System.in);// 输入一行(可以接收一行的数据)String str = sc.nextLine();// 默认有0个单词int wordcount=0;// 从第一个到最后一个字符for(int i=0;i<str.length();i++){// 如果遇到了空格表示一个单词的结束。if(str.charAt(i)==' '){// 累加wordcount++;}}// 输出字符串System.out.println(str);// 输出单词的个数。System.out.println(wordcount+1);}
}方法二:
import java.util.Scanner;public class WordCount {public static void main(String[] args) {//计数器int count = 0 ;System.out.println("输入一系列以空格隔开的字符串");Scanner sc = new Scanner(System.in);//忽略字符串头尾的空白String str = sc.nextLine().trim();String[] words = str.split(" ");for(int i = 0 ; i < words.length; i++) {if(!words[i].equals("")) {//不为空格时才计数(即只计算单词数)count++;}}System.out.println("一共有"+count+"个单词");sc.close();}}
6.2 StringBuffer类
当String类字符串进行拼接操作,每次拼接,都会构建一个新的String对象,既耗时,又浪费空间。而StringBuffer就可以解决这个问题线程安全的可变字符序列。
1、StringBuffer类对象创建
定义StringBuffer类对象格式:
1)StringBuffer 字符串变量名 =new StringBuffer();//默认长度16字符
2)StringBuffer 字符串变量名 =new StringBuffer(缓冲区长度);
3)StringBuffer 字符串变量名 =new StringBuffer(“字符串常量”);
public class StringBufferDemo {public static void main(String[] args) {StringBuffer s2 =new StringBuffer();//默认长度16字符StringBuffer s3 =new StringBuffer(50);//长度为50StringBuffer s4 =new StringBuffer("i like java");System.out.println("s2="+s2);System.out.println("s3="+s3);System.out.println("s4="+s4);}}public class StringBufferDemo {public static void main(String[] args) {StringBuffer s1 =new StringBuffer();//默认长度16字符System.out.println("s1的缓冲区长度:"+s1.capacity());//查看对象缓冲区长度System.out.println("s1的长度:"+s1.length());StringBuffer s2 =new StringBuffer(50);//缓冲区长度为50System.out.println("s2的缓冲区长度:"+s2.capacity());//查看对象缓冲区长度System.out.println("s2的长度:"+s2.length());StringBuffer s3 =new StringBuffer("i like java python");System.out.println("s3的缓冲区长度:"+s3.capacity());//查看对象缓冲区长度 16+11=27System.out.println("s3的长度:"+s3.length());}}运行结果:
s1的缓冲区长度:16
s1的长度:0
s2的缓冲区长度:50
s2的长度:0
s3的缓冲区长度:34//16+18
s3的长度:18
2、StringBuffer类成员方法
1)append():添加、增加public class ChengYuanWay {public static void main(String[] args) {//append:添加StringBuffer S1 =new StringBuffer("i like java");System.out.println("原来的S1:"+S1);//append() :S1.append()S1.append(",html,web");System.out.println("添加后的S1:"+S1);}}注意:该方法多次重写public class ChengYuanWay {public static void main(String[] args) {//append:添加StringBuffer S1 =new StringBuffer("i like java");System.out.println("原来的S1:"+S1);//append() :S1.append()S1.append(",html,web").append(",python").append(",php");System.out.println("添加后的S1:"+S1);}}
public class ChengYuanWay {public static void main(String[] args) {//append:添加StringBuffer S1 =new StringBuffer("i like java");System.out.println("原来的S1:"+S1);//append() :S1.append()S1.append(",html,web").append(",python").append(",php语言").append(12.67);System.out.println("添加后的S1:"+S1);}}2)insert():在指定的索引上,插入字符串public class InsertDemo {public static void main(String[] args) {StringBuffer S=new StringBuffer("abcd 祖国 ");System.out.println("原来的S:"+S);//insert添加元素 1)找到位置? 找到位置之后在这个位置添加我们要添加的元素S.insert(0, "F").insert(3, "G");//a索引0:0就是它的位置System.out.println("添加元素后的S:"+S);}
}append()和insert()区别:a、append()只能在字符串的结尾添加,而insert()在指定的索引上,插入字符串b、insert()两个参数,第一个参数索引(位置),第二参数你要添加什么值 通过索引值找到位置才能添加3)deleteCharAt(int index):删除指定索引的值4)delete(int start,int end)删除此序列的子字符串中的字符,子串开始于指定start并延伸到字符索引end - 15)replace:替换 6)reverse:反转7)substring:截取
public class StringBufferDemo {public static void main(String[] args) {// replace:替换StringBuffer s =new StringBuffer();s.append("hello java");System.out.println(s);System.out.println(s.length());s.replace(6, 10, "html");System.out.println("替换之后的s:"+s);//反转:reverse()StringBuffer s1=new StringBuffer();s1.append("我爱你");System.out.println(s1);s1.reverse();System.out.println("反转之后的s1:"+s1);//截取:substringStringBuffer s2=new StringBuffer();s2.append("java").append(" html").append(" php").append(" web").append("python");System.out.println(s2);String s3= s2.substring(4, 10);System.out.println(s3);}}
3、统计大、小写以及数字出现次数案例
案例:键盘输入字符串(absDGHS345;;;),统计该字符串中的大写字母、小写字母、数字字符出现的次数import java.util.Scanner;public class CountStringDemo {public static void main(String[] args) {// TODO Auto-generated method stubScanner sc =new Scanner(System.in);System.out.println("请输入一串字符串:");String str=sc.next();int bigc=0;int smallc=0;int numc=0;for(int i=0;i<str.length();i++) {char c=str.charAt(i);if(c>='a' &&c<='z') {smallc++;}else if (c>='A' &&c<='Z') {bigc++;}else if (c>='0' &&c<='9') {numc++;}}System.out.println("大写字母有"+bigc+"个");System.out.println("小写字母有"+smallc+"个");System.out.println("数字有"+numc+"个");}}
相关文章:

Java基础知识(六) 字符串
六 字符串 6.1 String字符串 1、String类对象创建 定义String类对象格式:** 1)String 字符串变量名“字符串常量”; 2)String 字符串变量名new String(字符串常量); 3)String 字符串变量名; 字符串变量名“字符串常…...

为什么跨境电商大佬都在自养号测评?看完你就懂了!
在跨境电商的激烈竞争中,各大平台如亚马逊、拼多多Temu、shopee、Lazada、wish、速卖通、煤炉、敦煌、独立站、雅虎、eBay、TikTok、Newegg、Allegro、乐天、美客多、阿里国际、沃尔玛、Nike、OZON、Target以及Joom等,纷纷成为商家们竞相角逐市场份额的焦…...

AtCoder Beginner Contest 353
A 题意:检查是否有比第一个数大的数 #include<bits/stdc.h>using namespace std;int main() {int n;cin>>n;int a;cin>>a;int f0;for(int i2;i<n;i){int k;cin>>k;if(k>a){cout<<i<<endl;f1;break;}}if(f0){cout<&l…...

深度解读《深度探索C++对象模型》之虚继承的实现分析和效率评测(一)
目录 前言 具有虚基类的对象的构造过程 通过子类的对象存取虚基类成员的实现分析 接下来我将持续更新“深度解读《深度探索C对象模型》”系列,敬请期待,欢迎左下角点击关注!也可以关注公众号:iShare爱分享,或文章末…...

计算机Java项目|Springboot房产销售系统
作者主页:编程指南针 作者简介:Java领域优质创作者、CSDN博客专家 、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、腾讯课堂常驻讲师 主要内容:Java项目、Python项目、前端项目、人工智能与大数据、简…...

学习3D几何和特征一致的高斯溅射目标去除
earning 3D Geometry and Feature Consistent Gaussian Splatting for Object Removal 学习3D几何和特征一致的高斯溅射目标去除 Yuxin Wang 王玉欣 HKUST &Qianyi Wu Monash University &Guofeng Zhang Zhejiang University &Dan Xu HKUST 香港科技大学&吴倩…...

PHP 使用常量实现枚举类
PHP 使用常量实现枚举类 <?php abstract class Enum {private static $constCacheArray NULL;private static function getConstants() {if (self::$constCacheArray NULL) {self::$constCacheArray [];}$calledClass get_called_class();if (!array_key_exists($call…...

Linux操作系统基础题库
一. 单选题(共2题,40分) 1. (单选题)Linux操作系统自诞生至今,有数十万的程序开发人员参与到了它的开发与完善中,如今Linux已发展成为是一个成熟、稳定的操作系统。从以下选项中选出关于Linux特点描述完全正确的一项。…...

Java抽象类:为何它是你代码架构的基石?
目录 1、抽象类的概念 2、抽象类语法 3、抽象类特性 4、抽象类的作用 5、 完结散花 个人主页:秋风起,再归来~ 文章专栏:javaSE的修炼之路 个人格言:悟已往之不谏,知来者犹可追 克…...

Flutter 中的 ToggleButtons 小部件:全面指南
Flutter 中的 ToggleButtons 小部件:全面指南 在 Flutter 中,ToggleButtons 是一种允许用户在一组选项中进行切换选择的控件。它通常用于展示一组相关选项,让用户可以快速切换选择。ToggleButtons 是一种水平排列的按钮集合,其中…...

【MYSQL】一颗B+树可以保存多少条数据
引言 事万物都有自己的单元体系,若干个小单体组成一个个大的个体。就像拼乐高一样,可以自由组合。所以说,如果能熟悉最小单元,就意味着我们抓住了事物的本事,再复杂的问题也会迎刃而解。 存储单元 存储器范围比较大…...

ssm125四六级报名与成绩查询系统+jsp
四六级报名与成绩查询系统的设计与实现 摘 要 互联网发展至今,无论是其理论还是技术都已经成熟,而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播,搭配信息管理工具可以很好地为人们提供服务。针对四六级报名信息管理混乱&am…...

【Unity从零开始学习制作手机游戏】第01节:控制3D胶囊体运动
1. 新建Project L01 使用3D Mobile模板。 2. 建立一个平面,用来承载物体 3. 导入Unity库内的胶囊体 下载 StandardAssets https://download.unitychina.cn/download_unity/e80cc3114ac1/WindowsStandardAssetsInstaller/UnityStandardAssetsSetup-5.6.7f1.exe …...

内容安全(DPI和DFI解析)
内容安全前言: 防火墙的本质其实就是包过滤,我们通常所说的安全设备(如:IPS、IDS、AV、WAF)的检测重心是应用层。下一代防火墙基于传统防火墙的拓展能力,就是可以将以上的安全设备模块集成在一起࿰…...

2024数维杯数学建模A题B题C题思路+模型+代码(开赛后第一时间更新)
2024数维杯数学建模A题B题C题思路模型代码(开赛后第一时间更新) https://mbd.pub/o/bread/ZpWakpdq https://mbd.pub/o/bread/ZpWakpdq 2024年第九届数维杯大学生数学建模挑战赛参赛规则 竞赛要求及论文提交方式; ①本次参赛作品统一在线提交到竞赛…...

SpringSecurity多表,多端账户登录
本文章对应视频SpringSecurity6多端账号登录,可无限扩展教程,记得三连哦,这对我很重要呢! 温馨提示:视频与文章相辅相成,结合学习效果更强哦!更多视频教程可移步B站【石添的编程哲学】 SpringSe…...

绝地求生PUBG新老艾伦格有什么差别 老艾伦格什么时候回归
复古风格的艾伦格原始地图携带着那些标志性的记忆符号华丽回归,邀请您沉浸于往昔的每一处细节探索中。我们不仅还原了游戏诞生的起点,还在其中巧妙融入现代游戏元素,构筑一座连接昔日与今朝的桥梁,完美融合了经典与创新的游戏体验…...

Windows下安装Node.js、npm和electronic,并运行一个Hello, World!脚本程序
20240510 By wdhuag 目录 简介: 参考: 安装Node.js 安装npm 配置npm: 修改包存放目录和缓存目录 切换镜像源 使用 nrm 切换镜像源 安装Electron 运行一个Hello, World!脚本程序 安装Yarn JavaScript 指南 简介: Nod…...

【精品案例】化工炼化企业信息化建设解决方案(74页PPT)
一、资料介绍 化工炼化企业信息化建设解决方案是一份详尽且全面的指导文件,旨在助力化工炼化企业实现信息化、智能化和数字化转型。本资料以74页的PPT形式呈现,围绕智能化工程施工方案、化工炼化企业信息化以及化工行业数字化转型等关键词,为…...

【Unity Animation 2D】Unity Animation 2D骨骼绑定与动画制作
一、图片格式为png格式,并且角色各部分分离 图片参数设置 需要将Sprite Mode设置为Single,否则图片不能作为一个整体 1、创建骨骼 1.1 旋转Create Bone,点击鼠标左键确定骨骼位置,移动鼠标再次点击鼠标左键确定骨骼,…...

工器具管理(基于若依)
文章目录 前言一、工器具管理项目总览 二、入库功能1. 前端1.1 界面展示1.2 具体操作实现1.3 js文件 2. 后端2.1 工器具信息回显2.2 工器具入库 三、领用功能1. 前端1.1 界面展示1.2 具体实现操作1.3 js文件 2. 后端2.1 工器具信息回显2.2 工器具领用 遇到的问题1. 同一页面展示…...

UE4_照亮环境_光束light beam
学习笔记,不喜勿喷,侵权立删!祝愿生活越来越好! 光束:模拟大气中散射的光线。利用定向光源模拟真实曙暮光效果或大气散射的阴影,即可生成 光束 。这些光线为场景添加深度和真实度。 一:一些参数…...

springboot3项目练习详细步骤(第三部分:文章管理模块)
目录 发布文章 接口文档 业务实现 自定义参数校验 项目参数要求 实现思路 实现步骤 文章列表(条件分页) 接口文档 业务实现 mapper映射 更新文章 接口文档 业务实现 获取文章详情 接口文档 业务实现 删除文章 接口文档 业务实现 文章管理业务表结构…...

【面试八股总结】C++11新特性:智能指针
参考资料 :阿秀、代码随想录 智能指针是一个类,用于存储指向动态分配对象的指针,负责自动释放动态分配的对象,防止堆内存泄露。动态分配的资源,交给一个类对象去管理,当类对象声明周期结束时,自…...

【教程向】从零开始创建浏览器插件(二)深入理解 Chrome 扩展的 manifest.json 配置文件
第二步:深入理解 Chrome 扩展的 manifest.json 配置文件 上一次我们已经着手完成了一个自己的浏览器插件,链接在这里:我是链接 在本篇博客中,我们将更详细地探讨 Chrome 扩展中的 manifest.json 文件。这个文件是每个浏览器扩展…...

美易官方:美国房地产贷款逾期率飙升,银行业危机仍可控?现货黄金暂守2360
美国房地产贷款逾期率飙升,银行业危机仍可控?现货黄金暂守2360 近年来,美国房地产市场一直处于波动之中,尤其是商业房地产领域。近期,美联储发出警告,称商业房地产贷款逾期率持续攀升,银行正在为…...

SwiftUI中的@StateObject和@ObservedObject的区别
SwiftUI中的StateObject和ObservedObject属性包装器指示视图更新以响应被观察对象的变化。虽然这两个属性包装器看起来很相似,但在使用SwiftUI构建应用程序时,有一个关键的区别需要理解。 两个属性包装器都要求对象符合ObservableObject协议。这个协议表…...

类与对象(二)
封装 封装作为面向对象三大特性(封装,继承,多态)之一,那如何实现封装性的呢?就又得拿出上面的访问修饰限定符的图 public: 就是在任何地方都可以访问 protected: 涉及子类在介绍继承时详细介绍 default: …...

LeetCode/NowCoder-链表经典算法OJ练习2
最好的,不一定是最合适的;最合适的,才是真正最好的。💓💓💓 目录 说在前面 题目一:分割链表 题目二:环形链表的约瑟夫问题 SUMUP结尾 说在前面 dear朋友们大家好!&…...

英伟达解码性能NVDEC
如果你能打开官网,请看这里: NVDEC Application Note 下面是摘录:...