首页 > 编程语言 >Java中String字符串的用法

Java中String字符串的用法

时间:2023-10-08 09:18:06浏览次数:34  
标签:字符 Java String int char 字符串

1.类 String 是 java.lang包下的类,所以不需要导包就可以直接使用。String 类代表字符串。Java 程序中的所有字符串字面值(如 "abc" )都作为此类的实例实现。   

字符串是常量;它们的值在创建之后不能更改。StringBuffer(字符串缓冲区)支持可变的字符串。因为 String 对象是不可变的,所以可以共享。 字符串是复合数据类型。在程序中经常会用到字符串及对字符串的各种操作,如字符串的比较、替换、截取、查找和连接等。

注:字符串的内容永不可变

2.为什么Java字符串是不可变的

 通过源码我们可以知道原因有一下两点:

(1).String 类被 final 关键字修饰,所以它不会有子类,这就意味着没有子类可以重写它的方法,改变它的行为。

(2).String 类的数据存储在 char[] 数组中,而这个数组也被 final 关键字修饰了,这就表示 String 对象是没法被修改的,只要初始化一次,值就确定了。

3.为什么要这样设计???

(1).可以保证 String 对象的安全性,避免被篡改,毕竟像密码这种隐私信息一般就是用字符串存储的。

(2).可以实现字符串常量池,Java 会将相同内容的字符串存储在字符串常量池中。这样,具有相同内容的字符串变量可以指向同一个 String 对象,节省内存空间。

4.字符串的基本操作

(1).连接

最常用对字符串进行的操作之一就是将两个字符串连接起来,合并为一个字符串。String类提供连接两个字符串的方法concat(),语法格式为: string1.concat(string2);

连接字符串还可以使用加号“+”运算符。这是一个重载了的运算符,用来直观地连接两个字符串,它使用起来比concat()方法更加灵活。例如: String 字符串3=字符串1+字符串2;

注:Java会根据加号运算符两边的操作数类型来决定是进行算术运算还是字符串连接的运算

(2)比较

我们可以使用equals()方法比较两个字符串是否相等,返回值boolean值;equalsIgnoreCase()方法,同样返回值为boolean值,使用格式为: 字符串1.equals(字符串2); 字符串1.equalsIgnoreCase(字符串2);

我们可以使用compareTo方法比较两个字符串的大小, 若调用方法的字符串比较参数字符串大,返回正整数; 若比参数字符串小,则返回负整数; 若两字符串相等,则返回0; 若两个字符串各个位置的字符都相同,仅长度不同,则返回值为两者长度之差。

如果比较双方一个常量一个变量,推荐把常量字符串写在前面。

(3)查找获取

int indexOf(char ch):搜索字符ch出现的第一个索引号,如果没有找到匹配,则返回-1;

int indexOf(char ch,int fromIndex):从fromIndex位置开始搜索字符ch出现的第一个索引号;

int indexOf(String str):搜索字符串str出现的第一个索引号。

public int length():获取字符串当中含有的字符个数,拿到字符串长度。

注意:数组,集合和String对象长度的获取是不一样的

数组a的长度:a.length

ArrayList集合b的长度: b.size()

String对象c的长度: c.length()

(4)截取

public String substring(int index):截取从参数位置一直到字符串末尾,返回新字符串。

public String substring(int begin, int end):截取从begin开始,一直到end结束,中间的字符串。[begin,end),包含左边,不包含右边。

(5)替换

字符串替换是用新字符去替代字符串中指定的所有字符,String类提供的replace方法可以实现这种替换。语法格式为: string1.replace(char oldchar,char newchar)

 

这只是一些常见的String字符串的用法,还有很多其他方法可以用于处理字符串。你可以参考Java官方文档或其他Java教程来了解更多关于String类的方法和用法。

标签:字符,Java,String,int,char,字符串
From: https://www.cnblogs.com/wxyuan/p/17748009.html

相关文章

  • 高效数据管理:Java助力实现Excel数据验证
    摘要:本文由葡萄城技术团队原创并首发。转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。前言在Java中,开发者可以使用一些开源的库(如ApachePOI)来添加、修改和处理Excel中的数据:包括数字、文本、日期、列表等。每种数据验证类型都具有不......
  • JavaSE基础05(方法,重载,调用,类和对象,构造器,封装,继承,方法重写,抽象类,接口,异常)
    面向对象以类的方式组织代码,以对象的组织封装数据;一个Java文件只能有一个public类,必须和文件名一样;java文件里也可以没有public类; 方法的定义方法的使用,修饰符返回值类型方法名(参数类型参数名){方法体return返回值};参数类型包括:基本数据类型和引用数据类......
  • 题目集1-3的总结java
    题目集1-3的总结java21207218-石子颖一.前言    题目一是我刚接触java代码后的第一次练习,题目量有点多,但是都不太难,加上有之前的c语言的基础,这次只需要掌握一些java基本语法和利用面向过程的基本思维,只需要写一个类便可以直接按照题目所给的逻辑将代码简单写出,只有在最......
  • JavaWeb开发
    1.学习路线前端:HTML,CSS,JS--Ajax,Axios--Vue,Element--前端工程化后端:Maven,SpringBoot开发,Mysql,JDBCWEB案例,会话跟踪技术,AOP,SpringBoot原理需求分析,表结构设计。接口文档,功能实现,测试2.Web:万维网(WorldWideWeb)......
  • Java网络编程
    InetAddress端口协议......
  • pta java题目集1~3次总结
    一、作业总结前三次的题目集里的作业难度相对而言都简单一些,便于我们入门java,从简易慢慢过渡到中等,最主要是学习到了“类”这个实用而又重要的工具,类似于此前在c语言里学习过的结构体一样,承载着重要的变量和功能。从整个题目集完成的情况上看来,结果还算可以,但是也遇到了许许多多......
  • JavaScript(二)--DOM
    DOM浏览器对象模型window对象是一个全局对象var定义的全局作用域中的变量、函数都会成为window对象的属性和方法调用时可省window 延时函数lettimer=setTimeout(回调函数,等待毫秒数)clearTImeout(timer)JS执行机制单线程(同一时间只能做一件事)H5提出新标准,允许js创建......
  • java题目集1~3总结blog
    (1)前言:前三次作业共计十八道题目,其中包含的知识点主要有包括:计算方面有单位换算,奇偶判断,浮点数相等判断等,其中的判断三角形类型和房产税计算十分具有代表性。数组方面有数组存储和遍历,查找重复数据等,其中对重复数据的查找与清除的两道题目对代码时间复杂度有一定的要求。面向对......
  • java题目编写及分析
    首先想分享给大家的是三个题目集,其难易程度是由易到难(我会着重挑几个题目给大家分析)  第一个题目集所包含的题目为身体质量指数BMI测算,长度质量单位换算,奇数求和,房产税费计算,游戏角色选择,学号识别,巴比伦法求平方根近似值,二进制数值提取,判断三角形类型共九个题目,在第一个题目......
  • Java题目集第一次总结
    前言此Blog是对Java的PTA作业的总结,旨在分析和总结所做过的Java题目,以加深对Java的理解和加强对Java的运用。前三次PTA中涉及到了类和数组的基本运用,字符串的操作,数据的封装,日期类的方法的基本运用等知识点。第一次作业题量适中,难度也适中;第二次作业题量偏多,难度偏大;第三次作......