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,点击鼠标左键确定骨骼位置,移动鼠标再次点击鼠标左键确定骨骼,…...
RestClient
什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端,它允许HTTP与Elasticsearch 集群通信,而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级ÿ…...
观成科技:隐蔽隧道工具Ligolo-ng加密流量分析
1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具,该工具基于TUN接口实现其功能,利用反向TCP/TLS连接建立一条隐蔽的通信信道,支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式,适应复杂网…...
iOS 26 携众系统重磅更新,但“苹果智能”仍与国行无缘
美国西海岸的夏天,再次被苹果点燃。一年一度的全球开发者大会 WWDC25 如期而至,这不仅是开发者的盛宴,更是全球数亿苹果用户翘首以盼的科技春晚。今年,苹果依旧为我们带来了全家桶式的系统更新,包括 iOS 26、iPadOS 26…...
反向工程与模型迁移:打造未来商品详情API的可持续创新体系
在电商行业蓬勃发展的当下,商品详情API作为连接电商平台与开发者、商家及用户的关键纽带,其重要性日益凸显。传统商品详情API主要聚焦于商品基本信息(如名称、价格、库存等)的获取与展示,已难以满足市场对个性化、智能…...
从WWDC看苹果产品发展的规律
WWDC 是苹果公司一年一度面向全球开发者的盛会,其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具,对过去十年 WWDC 主题演讲内容进行了系统化分析,形成了这份…...
Admin.Net中的消息通信SignalR解释
定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...
【入坑系列】TiDB 强制索引在不同库下不生效问题
文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...
8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂
蛋白质结合剂(如抗体、抑制肽)在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上,高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术,但这类方法普遍面临资源消耗巨大、研发周期冗长…...
相机从app启动流程
一、流程框架图 二、具体流程分析 1、得到cameralist和对应的静态信息 目录如下: 重点代码分析: 启动相机前,先要通过getCameraIdList获取camera的个数以及id,然后可以通过getCameraCharacteristics获取对应id camera的capabilities(静态信息)进行一些openCamera前的…...
Psychopy音频的使用
Psychopy音频的使用 本文主要解决以下问题: 指定音频引擎与设备;播放音频文件 本文所使用的环境: Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...
