String字符串

news/2024/11/28 21:44:33/

文章目录

  • String类
    • String常用的字符串处理方法
    • StringBuffer类
  • StringBuffer
    • StringBuffer类中常用的方法
    • StringBuilder类(了解为主)
    • StringTokenzier类(了解为主)

在这里插入图片描述


final属性,不可扩展,不可子类,不可改变。
数据在常量池
String s1="1";
String s2="1";
String s3=new String("1");
s1=s2   s1与s2都是常量区,地址相同
s1!=s3  s3是栈,地址不同"1"+"2" 是常量+常量=常量
String s1="1"; s1是变量
String s2="2"; s2是变量
s1+s2=变量+变量=变量(new的 在堆中)字符串比较所有字符的Ascll大小
String s1="1";
String s2="1";
System.out.println(s1.compareTo(s2));
-1 S1<S2
0  S1=S2
1  S1>S2判断字符串包含关系
String s1="1";
String s2="12";
System.out.println(s2.contains(s1));
S2包含S1 true查找指定字符位置
Strings1="12";
System.out.println(s1.indexOf('1'));   0位置
System.out.println(s1.indexOf('2'));   1位置
System.out.println(s1.indexOf('3'));   -1找不到字符串截取,
String s1="0123456789";
从指定位置一直到最后
System.out.println(s1.substring(7));   789A位置到B位置之前,不包括B位置
System.out.println(s1.substring(7,8));   7去掉前后空格
S1.trim();Stringchar[]
Strings1="0123456789";
char[] list=s1.toCharArray();
System.out.println(list);字符串比较所有字符的Ascll大小
String s1="001122";
System.out.println(s1.replaceAll("11","33"));
System.out.println(s1);
003322
001122字符串分割
S1="11 22 33";
S1.split(" ")=["11","22","33"]

String类

String是字符串常量类
String对象的值一经赋值,其值不可变
指的是所指向的内存值不可修改,但可以改变指向

String list=new String("hello");
list引用指向了对象
引用数据类型不直接拥有空间,只是指向空间
list=new String("hai");
引用指向被改变

String类型变量的初始化
方法一:构造方法初始化
String name= new String(“zhangxiao”);
方法二:字符串常量初始化(不推荐)
String sex = “男”;

//了解为主!!!
s="hello";
相当于:s=new String("hello);
在JVM中进行的优化String s1="hello";
s==s1;
这是因为JVM进行的优化

String类是final的,无法被继承

String s = “hello” 和 String s = new String(“hello”) 有什么不一样?
两个对象的内存不同

String常用的字符串处理方法

字符串连接(不改变原来的数据)
concat(String str)
“+”运算符

String s1=new String("111");
String s2=new String("222");
s1=s1+s2;
s1=s1.concat(s2);
  • 字符串查找

indexOf (String str)
lastIndexOf(String str)
charAt(int indexOf)
startsWith(String prefix)检测字符串是否以指定的前缀开始。

  • 字符串分割

split(String regex):字符串分割
compareTo(String str):字符串比较
equalslgnoreCase(String str):忽略大小写

  • 字符串替换

replace(char oldChar, char newChar)

  • 字符串求子串

substring(int beginIndex, int endIndex)

  • 字符串大小写转换

toUpperCase() 小写转大写
ToLowerCase()大写转小写

StringBuffer类

StringBuffer

 StringBuffer sb=new StringBuffer();添加sb.append("123");sb.append('4');System.out.println(sb);    					1234获取指定位置字符System.out.println(sb.charAt(0));				1插入System.out.println(sb.insert(2,"00"));			120034字符串反转System.out.println(sb.reverse());				430021删除System.out.println(sb.delete(2, 4));      		4321替换System.out.println(sb.replace(2, 4, "00"));	4300

StringBuffer类是一个字符串变量类
StringBuffer对象的值可以修改
主要用于对字符串做大量修改的操作时
StringBuffer变量的初始化
构造方法初始化
StringBuffer stringBuffer = new StringBuffer(“Hello”);

StringBuffer类中常用的方法

  • 字符串连接:append(Object obj)

  • 字符串删除:delete(int start,int end)

  • 字符串插入:insert(int offset,Object obj)

  • 字符串逆序:reverse()

  • 转换为String对象:toString()

在这里插入图片描述

只使用·String时内存消耗比较大

StringBuilder类(了解为主)

StringBuilder类与StringBuffer类的方法调用是一致的。
StringBuilder类与StringBuffer类的区别:
– StringBuffer是线程安全的
– StringBuilder是非线程安全的
(多线程)

StringTokenzier类(了解为主)

StringTokenizer类主要用途是将字符串以定界符为界,分析为一个个独立的token(大块变小块)。
StringTokenizer中的定界符可以自己指定。
StringTokenizer常用的方法:
hasMoreTokens:是否有更多的分隔符
nextToken:返回下一个分隔符前的内容值


http://www.ppmy.cn/news/109730.html

相关文章

C++ list类成员函数介绍

目录 &#x1f914;list模板介绍&#xff1a; &#x1f914;特点&#xff1a; &#x1f914;list内存结构图解&#xff1a; &#x1f914; list的成员函数&#xff1a; &#x1f60a;list构造函数&#xff1a; &#x1f50d;代码示例&#xff1a; &#x1f50d;运行结果&…

查看 HTTP 请求的数据.

文章结构 如果是 GET 请求如果是 POST 请求方法1&#xff1a;DEBUG 窗口&#xff08;**爽、超级爽、吴迪爽**&#xff09;&#xff1a;方法2&#xff1a;写方法读取流中数据&#xff08;繁琐&#xff0c;难用&#xff09;&#xff1a; 我们可能会碰到 MVC 拿不到前端的参数&…

Jenkins+Python自动化测试之持续集成详细教程

前言 今天呢笔者想和大家来聊聊JenkinsPython自动化测试持续集成&#xff0c;废话呢就不多说了哟咱们直接进入主题哟。 一、Jenkins安装 ​ Jenkins是一个开源的软件项目&#xff0c;是基于java开发的一种持续集成工具&#xff0c;用于监控持续重复的工作&#xff0c;旨在提供…

【MySQL】MySQL 字段为 NULL 的5大坑

数据准备 建立一张表 数据如下&#xff1a; 1.count 数据丢失 count(*) 会统计值为 NULL 的行&#xff0c;而 count(列名) 不会统计此列为 NULL 值的行。 select count(*),count(name) from person; ----------------------- count(*) | count(name)10 | 8-------…

使用docker和minio实现对象存储

文章目录 使用docker和minio实现对象存储什么是minio安装minio使用minio 使用docker和minio实现对象存储 什么是minio ​ Minio是一个开源的分布式文件存储系统&#xff0c;它基于 Golang 编写,虽然轻量&#xff0c;却拥有着不错的高性能&#xff0c;可以将图片、视频、音乐、…

Java程序设计入门教程-- switch选择语句

switch选择语句 情形 虽然if…else语句通过嵌套可以处理多分支的情况&#xff0c;但分支不宜太多&#xff0c;在Java语言中&#xff0c;提供了switch语句可以直接、高效地处理多分支选择的情况。 格式 switch &#xff08;表达式&#xff09; { case 常量表达式1&#x…

中台分类

大家好&#xff0c;我是易安&#xff0c;之前我们谈到过中台的概念&#xff0c;以及如何落地中台。今天我就带你一起看一看&#xff0c;行业常见的中台分类。 业务中台与数据中台 业务中台 业务这个词&#xff0c;其实是有些宽泛的&#xff0c;我听到很多人口中说的业务都不是…

Canvas画布基本功能及实现网页签名功能

canvas 简介 <canvas> 是 HTML5 新增的&#xff0c;一个可以使用脚本(通常为 JavaScript) 在其中绘制图像的 HTML 元素。它可以用来制作照片集或者制作简单(也不是那么简单)的动画&#xff0c;甚至可以进行实时视频处理和渲染。和所有 DOM 元素一样&#xff0c;拥有自己…