Java——String类的方法
Java——String类的方法
String str1 = “abc” 与String str2 = new String(“abc”)有什么区别?
- 字符串常量存储在字符串常量池,目的是共享
- 字符串非常量对象存储在堆中
String的常用方法
常用方法1:
- int length():返回字符串的长度return value.length
String str = "abcdefghijklmn";
System.out.println(str.length());
/*输出结果:14*/
- char charAt(int index):返回某索引处的字符return value[index]
String str = "abcdefghijklmn";
System.out.println(str.charAt(13));
/*输出结果:n*/
- boolean isEmpty():判断是否是空字符串return value.length == 0
String str = "abcdefghijklmn";
System.out.println(str.isEmpty());
/*输出结果:false*/
/*为空返回true,不为空返回false*/
- String toLowerCase():使用默认语言环境,将String中的所有字符转换成小写
String str = "AbcdefghijklmN";
System.out.println(str.toLowerCase());
/*输出结果:abcdefghijklmn*/
- String toUpperCase():使用默认语言环境,将String中的所有字符转换成大写
String str = "AbcdefghijklmN";
System.out.println(str.toUpperCase());
/*输出结果:ABCDEFGHIJKLMN*/
- String trim():返回字符串的副本,忽略前导空白和尾部空白(中间的空白不能忽略)
String str = " AbcdefghijklmN ";
System.out.println(str.trim());
/*输出结果:AbcdefghijklmN*/
- boolean equals(Object obj):比较字符串的内容是否相同
String str = "AbcdefghijklmN";
System.out.println(str.equals("abcdefghijklmN"));
/*输出结果:false*/
- boolean equalsIgnoreCase(String anotherString):与equals方法类似,忽略大小写
String str = "AbcdefghijklmN";
System.out.println(str.equalsIgnoreCase("abcdefghijklmN"));
/*输出结果:true*/
- String concat(String str):将指定字符串连接到此字符串的结尾。等价于“+”
String str = "AbcdefghijklmN";
System.out.println(str.concat("abcdefghijklmN"));
/*输出结果:AbcdefghijklmNabcdefghijklmN*/
- int compareTo(String anotherString):比较两个字符串的大小
String str = "Ac";
System.out.println(str.compareTo("Ab"));
/*输出结果:1*/String str = "Ab";
System.out.println(str.compareTo("Ab"));
/*输出结果:0*/String str = "Ab";
System.out.println(str.compareTo("Ad"));
/*输出结果:-2*/
- String substring(int beginIndex):返回一个新的字符串,它是此字符串从deginIndex开始到最后一个字符结束的一个子字符串
String str = "abcdefghijklmN";
System.out.println(str.substring(2));
/*输出结果:cdefghijklmN*/
- String substring(int beginIndex,int endIndex):返回一个新的字符串,它是此字符串的从begin开始,截取到endIndex(不包含)的一个子字符串
String str = "abcdefghijklmN";
System.out.println(str.substring(2,9));
/*输出结果:cdefghi
不包含str[9]
*/
常用方法2:
- boolean endsWith(String suffix):测试此字符串是否以指定的后缀结束
String str = "abcdefghijklmN";
System.out.println(str.endsWith("lmN"));
/*输出结果:true*/
- boolean startsWith(String prefix):测试此字符串是否以指定的前缀结束
String str = "abcdefghijklmN";
System.out.println(str.startsWith("abb"));
/*输出结果:false*/
- boolean startsWith(String prefix,int toffset):测试此字符串从指定索引开始的子字符串是否以指定前缀开始
String str = "abcdefghijklmN";
System.out.println(str.startsWith("de",3));
/*输出结果:true*/
- boolean contains(CharSequence s):当且仅当此字符串包含指定的char值序列时,返回true
String str = "abcdefghijklmN";
System.out.println(str.contains("hi"));
/*输出结果:true*/
- int indexOf(String str):返回指定子字符串在此字符串中第一次出现的索引,从指定的索引开始
String str = "lllllabcdeabcdeabcsde";
System.out.println(str.indexOf("abcs"));
/*输出结果:15*/
- int lastIndexOf(String str):返回指定字符串在此字符串中最右边出现处的索引
String str = "abcdeabcdeabcde";
System.out.println(str.lastIndexOf("abcde"));
/*输出结果:10*/
常用方法3:
- String replace(char oldChar,char newChar):返回一个新的字符串,它是通过用newChar替换此字符串中出现的所有oldChar得到的
String str = "abcd abcd abcd csdn csdn adcc";
System.out.println(str.replace("abcd", "csdn"));
/*输出结果:csdn csdn csdn csdn csdn adcc*/
String replaceAll(String regex,String replacement):使用给定的 replacement 替换此字符串所有匹配给定的正则表达式的子字符串
boolean matches(String regex):告知此字符串是否匹配给定的正则表达式
String[] split(String regex):根据正则表达式的匹配拆分此字符串
String[] split(String regex,int limit):根据匹配给定的正则表达式来拆分此字符串,最多不超过limit个,如果超过了,剩下的全部都放到最后一个元素中
public static void main(String[] args){String s = "Hello";s += " World";System.out.println(s);
}
如果对字符串进行拼接操作,每次拼接,都会构建一个新的String对象,既耗时,又浪费内存空间,而这种操作还不可避免。如何解决这个问题???可以通过Java提供的StringBuilder类来解决。
StringBuilder和StringBuffer
StringBuilder是一个可变的字符串类,可以把它看成一个容器,这里的可变是指StringBuilder对象中的内容是可变的,可以对字符串内容进行增删,它做字符串拼接的时候是不会创建一个新的对象的
String的内容是不可变的
StringBuilder内容是可变的,StringBuffer内容是可变的
StringBuffer常用的方法:
- StringBuffer append(xxx):进行字符串拼接
StringBuffer bf = new StringBuffer("lll");
System.out.println(bf.append("sss"));
/*输出结果:lllsss*/
- StringBuffer delete(int start,int end):删除指定位置的内容
StringBuffer bf = new StringBuffer("aaaasssscccc");
System.out.println(bf.delete(4, 8));
/*输出结果:aaaacccc
不包括bf[8]*/
- StringBuffer replace(int start,int end,String str):把[start,end]位置替换为str
StringBuffer bf = new StringBuffer("aaaasssscccc");
System.out.println(bf.replace(4, 8, "bbbb"));
/*输出结果:aaaabbbbcccc*/StringBuffer bf = new StringBuffer("aaaasssscccc");
System.out.println(bf.replace(4, 8, "bb"));
/*输出结果:aaaabbcccc*/
- StringBuffer insert(int offset,xxx):在指定位置插入xxx
- StringBuffer reverse():把当前字符序列逆转
String字符串拼接、StringBuffer、StringBuilder三者效率测试
package string;public class StringDemo06 {public static void stringJoin() {long startTime = System.currentTimeMillis();String s = "";for(int i=0;i<10000;i++) {s = s + "Hello";s = s + "World";s = s + "Hello";}long endTime = System.currentTimeMillis();System.out.println("使用String进行字符串拼接用时(毫秒):"+(endTime - startTime));}public static void stringBufferJoin() {StringBuffer strBuffer = new StringBuffer("");long startTime = System.currentTimeMillis();for(int i=0;i<10000;i++) {strBuffer.append("Hello");strBuffer.append("World");strBuffer.append("Hello");}long endTime = System.currentTimeMillis();System.out.println("使用StringBuffer进行字符串拼接用时(毫秒):"+(endTime - startTime));}public static void stringBuilderJoin() {StringBuilder strBuilder = new StringBuilder();long startTime = System.currentTimeMillis();for(int i=0;i<10000;i++) {strBuilder.append("Hello");strBuilder.append("World");strBuilder.append("Hello");}long endTime = System.currentTimeMillis();System.out.println("使用StringBuilder进行字符串拼接用时(毫秒):"+(endTime - startTime));}public static void main(String[] args) {//String拼接字符串用时stringJoin();//StringBuffer拼接字符串用时stringBufferJoin();//StringBuilder拼接字符串用时stringBuilderJoin();}
}
运行结果:
总结:StringBuffer与StringBuilder的区别
- StringBuffer:可变字符序列、效率低、线程安全、多线程操作字符串缓冲区下操作大量数据用StringBuffer
- StringBuilder:可变字符序列、效率低、线程不安全、单线程操作字符串缓冲区下操作大量数据用StringBuilder
Java——String类的方法相关推荐
- java string类的方法_Java-String类的常用方法总结
一.String类 String类在java.lang包中,java使用String类创建一个字符串变量,字符串变量属于对象.java把String类声明的final类,不能有类.String类对象创 ...
- Java String 类的方法
1.String对象的初始化 由于String对象特别常用,所以在对String对象进行初始化时,Java提供了一种简化的特殊语法,格式如下: String s = "abc"; ...
- 【转】java string类的方法及说明
http://suyu8776.javaeye.com/blog/192629 String:字符串类型 1.构造函数. String() :构造一个空字符串对象. String(byte[] byt ...
- Educoder–Java String类 length()方法与compareTo()方法的使用 - 花名册 substring()方法与indexOf()方法的使用 - 姓名查找编程要求
文章目录 第1关:length()方法与compareTo()方法的使用 - 花名册 答案 第2关:substring()方法与indexOf()方法的使用 - 姓名查找编程要求 答案 第1关:len ...
- java string.substring 参数,Java,String类中的subString()方法,stringsubstring
Java,String类中的subString()方法,stringsubstring public class TestStringSubString { // main函数 public stat ...
- Java String类的split方法简介
Java String类的split方法简介 String的split()方法用于按传入的字符或字符串对String进行拆分,返回拆分之后的数组. 1.一般用法 用一般的字符,例如 @ 或 , 等符号 ...
- java --String类解决面试问题
2019独角兽企业重金招聘Python工程师标准>>> 1.概述 字符串对象是一种特殊的对象.String类是一个不可变的类..也就说,String对象一旦创建就不允许修改 Stri ...
- java string类api_JAVA中String类的常用方法API
@[toc] 前言 String 类是我们日常经常使用的Java类,以下是对该类的信息汇总,类的关系图如下 String类关系图 创建: String s="hello!";//使 ...
- java日历类add方法_Java日历computeTime()方法及示例
java日历类add方法 日历类computeTime()方法 (Calendar Class computeTime() method) computeTime() method is availa ...
最新文章
- Mac下mysql服务器安装
- 智能车竞赛车模轮子与电机齿轮的参数
- python官网下载步骤视频-Python 实现视频下载
- 干货|吴恩达Coursera课程教你学习神经网络二!
- CF388D-Fox and Perfect Sets【dp,线性基】
- Kafka(三)-- Kafka主要参数
- Applese 的 QQ 群
- OpenGL基础42:实例化
- !HDU 1078 FatMouse and Cheese-dp-(记忆化搜索)
- Gzip, Bzip2,Xz压缩
- VM 网络设置 for xp3
- 解读:【小爱同学】智能问答系统
- 2011美剧季终/剧终时间表。
- 傅里叶级数构建信号要求频率有正有负_电子科大学长说—信号与系统考研例题详解重点习题...
- azkaban跑项目的时候,一直running,
- 浅析MySQL死锁检测
- 中兴OLT告警日志服务器,中兴olt_中兴olt c300用户手册_中兴olt掉线(4)
- IE主页改不了怎么办
- 橙汁的面试经验汇总(百度、平安壹钱包、诺瓦、快手、bigo、海信、奇安信、小米、迈瑞医疗、顺丰、网易互娱、多益游戏、京东、穆迪)
- Hive 基础知识(二)
热门文章
- LeetCode 748. 最短完整词
- LeetCode 1026. 节点与其祖先之间的最大差值(二叉树DFS)
- LeetCode 581. 最短无序连续子数组(排序单调栈)
- LeetCode 212. 单词搜索 II(Trie树+DFS)
- 朴素贝叶斯算法--过滤垃圾短信
- html 获取鼠标在canvas上的坐标,html5-canvas 检测鼠标在画布上的位置
- c语言(int)x 100,【单选题】下列语句执行后,变量a、c的值分别是( ) int x=182; 
int a,c;c=x/100;a=x%10;...
- C语言数组相似度比对,某课程设计---文件相似度判断
- 非线性回归 - 案例按步骤详解 -(SPSS建模)
- 阿里P8架构师谈:MySQL数据库的索引原理、与慢SQL优化的5大原则