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,点击鼠标左键确定骨骼位置,移动鼠标再次点击鼠标左键确定骨骼,…...
终极指南:在PC上完美运行PS4游戏的秘密武器
终极指南:在PC上完美运行PS4游戏的秘密武器 【免费下载链接】shadPS4 PS4 emulator for Windows,Linux,MacOS 项目地址: https://gitcode.com/gh_mirrors/shad/shadPS4 你是否曾经梦想过在电脑上畅玩那些只能在PS4上体验的独占大作?今天ÿ…...
VRCX:重新定义VRChat社交管理的智能伴侣工具
VRCX:重新定义VRChat社交管理的智能伴侣工具 【免费下载链接】VRCX Friendship management tool for VRChat 项目地址: https://gitcode.com/GitHub_Trending/vr/VRCX 在虚拟社交平台VRChat的生态中,社交关系管理常常成为用户体验的痛点。传统方式…...
AI净界RMBG-1.4快速上手指南:小白也能轻松搞定透明素材
AI净界RMBG-1.4快速上手指南:小白也能轻松搞定透明素材 1. 为什么你需要这个工具 如果你曾经尝试过用传统软件抠图,一定遇到过这些烦恼:发丝边缘总是有残留背景色、半透明物体抠出来像蒙了一层雾、宠物毛发看起来像被啃过一样参差不齐。AI净…...
手把手教你解决MMLab中ImportError: cannot import name ‘set_random_seed‘错误
深度解析MMLab中set_random_seed导入错误的本质与系统化解决方案 当你第一次在MMLab生态中遇到ImportError: cannot import name set_random_seed from mmdet.apis这个错误时,可能会感到困惑和沮丧。这个看似简单的导入错误背后,实际上反映了开源计算机视…...
LLM大模型开发实战:6个爆款开源项目,小白也能轻松入门!
本文介绍了6个GitHub上的热门LLM(大型语言模型)开源项目,包括Datawhale的"LLM-Universe"和"LLM-Cookbook"、微软的"Generative AI for Beginners"、mlabonne的"LLM-Course"、liguodongiot的"LL…...
Minecraft Masa Mods汉化包终极指南:三分钟告别英文界面困扰
Minecraft Masa Mods汉化包终极指南:三分钟告别英文界面困扰 【免费下载链接】masa-mods-chinese 一个masa mods的汉化资源包 项目地址: https://gitcode.com/gh_mirrors/ma/masa-mods-chinese 还在为Masa Mods系列模组的英文界面而烦恼吗?每次打…...
从IPv4到IPv6迁移实战:在eNSP里排查那些容易被忽略的安全配置(避坑指南)
从IPv4到IPv6迁移实战:eNSP环境下的安全配置深度排查指南 当企业网络从IPv4向IPv6过渡时,工程师们常常会陷入一种"配置惯性"——沿用IPv4时代的安全策略直接套用到IPv6环境。这种思维定式往往会导致网络出现各种"隐形漏洞"。本文将通…...
手把手教你搭建He-Ne激光空间滤波实验(附完整光路图)
从零搭建He-Ne激光空间滤波实验:光路设计与调试实战指南 在光学实验室里,空间滤波技术就像给图像装上"智能滤镜",能够选择性地增强或抑制特定空间频率成分。想象一下,当你透过不同形状的"光学窗口"观察世界时…...
SQL注入的分类靶场实践
SQL注入的分类靶场实践 前言 SQL 注入(SQL Injection)是一种常见且危险的 Web 安全漏洞,攻击者通过在输入字段中插入恶意 SQL 代码,能够绕过应用程序的验证机制,直接操纵数据库。本文将介绍 SQL 注入的分类ÿ…...
毕业季求生指南:用百考通AI重塑你的论文写作全流程
深夜的电脑屏幕前,面对空白的文档和堆积如山的文献,你是否感到无从下手?当查重率居高不下、导师的修改意见密密麻麻时,是否渴望一种更智能的解决方案?本文将为你揭示一个学术写作的新可能。 01 开题之困:从…...
