String

2023-11-10

String是一个对象,不是基本数据类型;

String的特点:字符串对象一旦初始化,便不能被修改;改变的只是引用型变量的指向;

例如:String str="abc";  String str = "ert";  "abc";依然存在,只是str的指向变了
String str ="abc";   String str = new String("abc"); 的区别:
第一个语句在字符串常量池中创建了一个对象,第二个语句new了一个对象,还在堆中创建了一个字符串对象 

String类的构造函数

String byte = new String(byte [] arr);

按平台的默认字符集解码指定的byte子数组

String char = new String(char [] arr);

分配一个新的String,使其表示其字符数组参数中的字符序列

String类中的方法:

1.获取

1.1获取字符串长度 int length();
1.2根据位置获取字符 char charAt(int index);
1.3根据字符获取在字符串中第一次出现的位置 
		indexOf()一类的重载方法
	  根据字符串获取在字符串中最后一次出现的位置 
		lastIndexOf一类的重载方法
	  注意:如果返回值是-1,则说明该字符或者字符串不存在
1.4获取字符串中一部分字符串,也称子串
    String substring(int beginIndex,int endIndex);
    String substring(int beginIndex);
    注意:截取长度等于endIndex – beginIndex(也就是包含beginIndex,不包括endIndex)

2.转换

2.1将字符串分解成多段(字符串数组)
    String [] split(String regex); 根据正则表达式的匹配来分解
2.2将字符串变成字符数组
    char [] toCharArray();
2.3将字符串变成字节数组
    byte [] getBytes();
2.4改变字符串的大小写
   String toUppercase();  大写
   String toLowerCase();  小写
2.5替换字符串内容
    String replace(char old,char new);
    String replace(String old,String new);
2.6去除字符串俩端的空白
    String trim();
2.7连接字符串
    String concat(String regex); 将指定字符串连接到此字符串的末尾

3.判断

3.1比较俩个字符串的内容是否相同
    boolean equals();
3.2忽略大小写对字符串内容进行比较
    boolean equalsIgnoreCase(String str);
3.3字符串是否包含指定字符串
    boolean contains(String str);
3.4字符串是否以指定字符串开头或者结尾
    boolean startsWith();
    boolean endsWith();

4.比较

int compareTo(String anotherString) 按字典顺序比较俩个字符串
参数字符串等于此字符串,返回值为0
参数字符串大于此字符串,返回值为负数
参数字符串小于此字符串,返回值为正数
5.intern():对字符串池进行操作

一个初始为空的字符串池,它由类 String 私有地维护。

当调用 intern 方法时,如果池已经包含一个等于此 String对象的字符串(用 equals(Object) 方法确定),则返回池中的字符串。否则,将此 String 对象添加到池中,并返回此 String 对象的引用。

它遵循以下规则:对于任意两个字符串 s 和 t,当且仅当s.equals(t) 为 true 时,s.intern() == t.intern() 才为 true。








本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

String 的相关文章

随机推荐

  • Android 代码混淆语法讲解及常用模板,app架构图

    keepclassmembers class R public static 表示不混淆 R 类中 的 static 变量 在 R 类中 这些资源 ID 是系统自动帮我们生成的 混淆了就无法找到相应的资源 dontwarn android
  • VUE 之 项目常规配置详解

    Vue 项目的常规配置可以分为以下几个方面 路由配置 使用 Vue Router 进行路由配置 需要在 src router index js 文件中配置路由表和路由守卫 状态管理 使用 Vuex 进行状态管理 需要在 src store
  • C++多线程:thread_local

    概念 首先thread local是一个关键词 thread local是C 11新引入的一种存储期指定符 它会影响变量的存储周期 Storage duration 与它同是存储期指定符的还有以下几个 关键字 说明 备注 auto 自动存储
  • new详解

    new int和new int 内置类型 对于int内置类型 new仅仅只是分配内存 除非后面显示加 相当于调用它的构造函数 int p new int 10 10个未初始化的int int p2 new int 10 10个值初始化为0的
  • 异步调用的四种方法

    异步调用的四种方法 我们都知道普通方法运行是单线程的 如果中途有大型操作都会导致方法阻塞 表现在界面上就是 程序卡或者死掉 界面元素不动了 不响应了 C 异步调用是很好的解决方法 异步执行某个方法 程序立即开辟一个新线程去运行你的方法 主线
  • 【ES6】var、let、const三者的区别

    首先 一个常见的问题是 ECMAScript 和 JavaScript 到底是什么关系 ECMAScript是一个国际通过的标准化脚本语言 JavaScript由ECMAScript和DOM BOM三者组成 可以简单理解为 ECMAScri
  • Java反射机制及Method.invoke详解

    这篇文章主要介绍了Java反射机制及Method invoke详解 本文讲解了JAVA反射机制 得到某个对象的属性 得到某个类的静态属性 执行某对象的方法 执行某个类的静态方法等内容 需要的朋友可以参考下 JAVA反射机制 JAVA反射机制
  • hackthebox的网站使用教程

    Google浏览器下载 下载url https www google cn chrome hackthebox网站 网站url https www hackthebox com home 获取验证码注册教程 网站url https blog
  • 运用打分和Boost优化Elasticsearch搜索结果

    来自Optimizing Search Results in Elasticsearch with Scoring and Boosting 作者 Neil Alex 2015 03 18 虽然es提供了高效的打分函数 但是在电商环境下还是
  • python趣味编程-扫雷游戏

    在上一期我们用Python实现了一个弹跳球的游戏 这一期我们继续使用Python实现一个简单的弹跳球游戏 让我们开始今天的旅程吧 Python中的扫雷游戏GUI免费源代码 这 Python中的扫雷游戏GUI免费源代码 是一个以 python
  • UE4 List View 在蓝图中的使用

    在使用中遇到的问题 蓝图中调用userListEntry 接口的IsListItemSelected IsListItemExpanded GetOwningListView 函数 均会崩溃 一 创建用作item显示的 控件蓝图 命名为 l
  • redis-cli 利用管道批量导入MySQL数据到Redis

    前言 因为公司业务的需要 需要快速的将mysql的中的数据查询导入到redis中 程序遍历MySQL然后插入Redis 效率极低 利用redis cli命令行工具有一个批量插入模式 是专门为批量执行命令设计的 可以把Mysql查询的内容格式
  • JS操作字符串方法学习系列(1)-每天学习10个方法

    目录 字符串连接 Concatenation 字符串长度 Length 字符串查找 Search 字符串替换 Replace 字符串分割 Split 字符串大小写转换 Case Conversion 字符串切片 Slice 字符串删除空白
  • 校园二手市场交易平台(JAVA,SSM,BOOTSTRAP,JSP,AJAX,MYSQL)

    今天 我们发布一套 校园二手市场交易 系统使用技术包含JAVA SSM BOOTSTRAP JSP AJAX MYSQL 这套系统后台框架使用SSM 前台框架为BOOTSTRAP 数据库使用MySql 这套系统包含完整的源代码和数据库脚本
  • 如何通过使用 SQL Server 中的 Detach 和 Attach 函数将 SQL Server 数据库移到新位置(转载)

    载自http support microsoft com kb 224071 zh cn 如何通过使用 SQL Server 中的 Detach 和 Attach 函数将 SQL Server 数据库移到新位置 参考概要本文描述如何更改任何
  • Element的message消息提示每次只出现一个

    使用element的message消息提示框有时出现这种重复弹出情况 解决办法 if document getElementsByClassName el message length 0 也就是当前没有提示弹窗 that message
  • 汽车变排量空调压缩机的工作原理

    不同于定排量压缩机 fixed displacement compressor FDC 变排量压缩机 variable displacement compressor VDC 可自动改变其泵送能力以满足空调的需求 当车厢温度高时 它会提高其
  • 《Perl语言入门》读书笔记(四)子程序

    1 子程序 1 1 定义子程序 使用关键字sub开头 在写上子程序名 字母 数字和下划线组成 不能以数字开头 大括号框柱子程序主体 子程序可以定义在文件的任意位置 为了方便代码阅读 一般建议放在开头或结尾处 sub marine n 1 全
  • WebSocket的使用指南---前端

    1 WebSocket概述 WebSocket 是 HTML5 开始提供的一种浏览器与服务器间进行全双工通讯的网络技术 WebSocket 通信协议于2011年被IETF定为标准RFC 6455 WebSocketAPI 被 W3C 定为标
  • String

    String是一个对象 不是基本数据类型 String的特点 字符串对象一旦初始化 便不能被修改 改变的只是引用型变量的指向 例如 String str abc String str ert abc 依然存在 只是str的指向变了 Stri