String类的常用方法总结,Cs挽周带你玩转String类(图文总结超详细) !
Posted 孟挽周
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了String类的常用方法总结,Cs挽周带你玩转String类(图文总结超详细) !相关的知识,希望对你有一定的参考价值。
String
String
类是不可改变的,所以你一旦创建了String
对象,那它的值就无法改变了。 如果需要对字符串做很多修改,那么应该选择使用StringBuffer
&StringBuilder
类。
这句话的理解:
- Java中字符串类型String是不允许改变其内容的,那么请问简要谈谈下列语句是如何运行的:String s=new String(“ABC”); s=s+“abc”;
- 确实,Java中的String类型确实是不允许改变其内容的,String类型的对象一旦建立,将在堆内存当中占据一个固定的内存空间,String类型的对象无法改变。但是你在运算的时候又发现,你定义的String类型的s变量又是可以进行连接的,如"abc"+“def"最终得到的s的值是"abcdef”,这似乎看着String类型的对象又是可以改变的,这是自相矛盾吗?其实,String对象不允许改变内容是正确的,但是可以改变定义的String类型的变量指向,你定义的String s其实是一个指向String对象的指针,如果不存在对象就为null。如果你定义了:String s=“abc”;那么将创建一个内容为"abc"的String对象,并且s指向这个对象。一旦s=s+“abc”;这样的操作,那么将创建一个新的String对象来存放新的内容,原先的对象依旧在内存中,但是s不在指向它,那么这个对象就会成为垃圾内存,在某一个特定的时刻有Java虚拟机回收。如果希望存放的String可以调整大小,而不是创建新的内存来存放新的对象,可以使用StringBuffer这个类来存放。这个内存可以调整大小。而不会抛弃。
实例:
public static void main(String[] args) {
String s=new String("ABC"); s=s+"abc";
System.out.println(s);
}
在此我为大家列出了一个大纲,通过大纲和目录,可以快速定位到想要使用的方法。
方法 | 说明 |
---|---|
int length() | 返回当前字符串长度 |
char charAt( int index) | 获取字符串中指定位置的字符 |
char toCharArray() | 将字符串转为 char 数组类型。 |
int indexOf( int ch) | 查找ch字符在该字符串中第一次出现的位置 |
String.lastIndexOf(String str) | 得到str最后一次出现的位置 |
toUpperCase(),toLowerCase() | 字符串大小写转换 |
String[ ] split(String regex ,int limit) | 去除字符串中指定的的字符,然后返回一个新的字符串 |
boolean equals(Object anObject) | 字符串比较 |
String trim() | 去除字符串两端空格 |
String replace(char oldChar,char newChar) | 字符串替换 |
String substring(int beginIndex,int endIndex) | 截取字符串 |
boolean equalsIgnoreCase(String str) | 忽略大小写对字符串进行比较 |
boolean contains(String str) | 判断一个字符串里面是否包含指定的内容 |
boolean startsWith(String str) | 是否以指定的前缀开始 |
boolean endsWith(String str) | 是否以指定的后缀结束 |
String replaceAll(String str1,String str2) | 将某个内容全部替换成指定内容 |
String repalceFirst(String str1,String str2) | 将第一次出现的某个内容替换成指定的内容 |
String concat(String str) | 在原有的字符串的基础上加上指定字符串 |
boolean isEmpty() | 非空判断 |
方法目录
- String
- int length()
- char charAt( int index)
- char toCharArray()
- int indexOf( int ch)
- String.lastIndexOf(String str)
- toUpperCase(),toLowerCase()
- String[ ] split(String regex ,int limit)
- boolean equals(Object anObject)
- String trim()
- String replace(char oldChar,char newChar)
- String substring(int beginIndex,int endIndex)
- boolean equalsIgnoreCase(String str)
- boolean contains(String str)
- boolean startsWith(String str)
- boolean endsWith(String str)
- String replaceAll(String str1,String str2)
- String repalceFirst(String str1,String str2)
- String concat(String str)
- boolean isEmpty()
int length()
- 语法:
字符串变量名.length();
- 说明: 返回值为 int 类型。得到一个字符串的字符个数(中、英、空格、转义字符皆为字符,计入长度)
- 示例:
public static void main(String[] args) {
String test = "我是Cs挽周,请官方给我个热榜,@@占位符@@谢谢了";
System.out.print(test.length());
}
- 结果:
char charAt( int index)
- 语法:
字符串名.charAt(值);
- 说明: 返回值为 char 类型。从字符串中取出指定位置的字符
- 示例:
public static void main(String[] args) {
String test = "我是Cs挽周,请官方给我个热榜,@@占位符@@谢谢了";
System.out.print("指定字符为:"+test.charAt(4));
}
- 结果:
char toCharArray()
- 语法:
字符串名.toCharArray();
- 说明: 返回值为 char 数组类型。将字符串变成一个字符数组
- 示例:
public static void main(String[] args) {
String test = "我是Cs挽周,请官方给我个热榜,@@占位符@@谢谢了";
char[] chars = test.toCharArray();
for (int i=0;i<chars.length;i++){
System.out.println(chars[i]);
}
}
- 结果:
int indexOf( int ch)
- 语法 :
字符串名.indexOf("字符");
,字符串名.indexOf("字符",值);
- 1个入参,说明: 查找一个指定的字符串是否存在,返回的是字符串的位置,如果不存在,则返回-1 。
- 2个入参,说明 : 从指定位置开始查找一个指定的字符串是否存在,返回的是字符串的位置,如果不存在,则返回-1 。
- 示例:
// 1
public static void main(String[] args) {
String test = "我是Cs挽周,请官方给我个热榜,@@占位符@@谢谢了";
System.out.println(test.indexOf("位"));
}
// 2
public static void main(String[] args) {
//查找一个字符是否存在,存在返回下标,不存在返回 -1
String test = "我是Cs挽周,请官方给我个热榜,@@占位符@@谢谢了";
System.out.println(test.indexOf("@",19));
}
- 结果:
String.lastIndexOf(String str)
- 语法:
字符串名.lastIndexOf("字符")
- 说明: 得到指定内容最后一次出现的下标。
- 示例:
public static void main(String[] args) {
//查找一个字符是否存在,存在返回下标,不存在返回 -1
String test = "我是Cs挽周,请官方给我个热榜,@@占位符@@谢谢了";
System.out.println(test.lastIndexOf("@"));
}
- 结果:
toUpperCase(),toLowerCase()
- 语法:
字符串名.toUpperCase()
,字符串名.toLowerCase()
- 说明: 字符串大小写的转换
- 示例:
public static void main(String[] args) {
String str="hello world";
System.out.println("将字符串转大写为:" + str.toUpperCase());
System.out.println("将字符串转换成小写为:" + str.toUpperCase().toLowerCase());
}
- 结果:
String[ ] split(String regex ,int limit)
- 语法:
String[] split("字符")
String[] split(String regex ,int limit)
String[] split("字符")
说明: 根据给定的正则表达式的匹配来拆分此字符串。String[] split(String regex ,int limit)
说明: 若limit参数大于等于这个length或limit参数为非正数,则字符串以regex方式进行最大split;若limit参数处于0和length之间,则字符串以regex方式进行limit - 1次split,split后剩下的字符不会再进行split。- 示例:
// String[] split("字符")
public static void main(String[] args) {
String test = "我是Cs挽周,请官方给我个热榜,@@占位符@@谢谢了";
String[] split = test.split("@");
for (int i =0;i<split.length;i++){
System.out.println(split[i]);
}
}
//String[] split(String regex ,int limit)
public static void main(String[] args) {
String test = "我是Cs挽周,请官方给我个热榜,@@占位符@@谢谢了";
String[] split = test.split("@",2);
for (int i =0;i<split.length;i++){
System.out.println(split[i]);
}
}
- 结果:
boolean equals(Object anObject)
- 语法:
字符串变量名.wquals(字符串变量名);
- 说明: 比较两个字符串是否相等,返回布尔值
- 示例:
public static void main(String[] args) {
String a = "mzc";
String b = "zll";
System.out.println(a.equals(b));
}
- 结果:
String trim()
- 语法:
字符串变量.trim();
- 说明: 去掉字符串左右空格
- 示例:
public static void main(String[] args) {
String a = " mzc ";
System.out.println(a.trim());
}
- 结果:
String replace(char oldChar,char newChar)
- 语法:
字符串变量.replace("原本值","要替换的值")
- 说明: 新字符替换旧字符。
- 示例:
public static void main(String[] args) {
String a = " mzcm ";
System.out.println(a.replace('m','w'));
}
- 结果:
String substring(int beginIndex,int endIndex)
- 语法:
字符串变量.substring(索引 1,索引 2)
- 说明: 截取字符串
- 示例:
public static void main(String[] args) {
String test = "我是Cs挽周,请官方给我个热榜,@@占位符@@谢谢了";
System.out.println(test.substring(test.indexOf("@")+2,test.lastIndexOf("@")-1));
}
- 结果:
boolean equalsIgnoreCase(String str)
- 语法:
字符串变量.equalsIgnoreCase("值")
- 说明: 忽略大小写的比较两个字符串的值是否一模一样,返回一个布尔值
- 示例:
public static void main(String[] args) {
String str = "HELLO WORLd";
String str1 = "hello world";
System.out.println(str.equalsIgnoreCase(str1));
}
- 结果:
boolean contains(String str)
- 语法:
字符串变量.contains(“值”)
- 说明: 判断一个字符串里面是否包含指定的内容,返回一个布尔值
- 示例:
public static void main(String[] args) {
String test = "我是Cs挽周,请官方给我个热榜,@@占位符@@谢谢了";
System.out.println(test.contains("挽周"));
}
- 结果:
boolean startsWith(String str)
- 语法:
字符串变量.startsWith("值")
- 说明: 测试此字符串是否以指定的前缀开始。返回一个布尔值
- 示例:
public static void main(String[] args) {
String test = "我是Cs挽周,请官方给我个热榜,@@占位符@@谢谢了";
System.out.println(test.startsWith("我"));
}
- 结果:
boolean endsWith(String str)
- 语法:
字符串变量.endsWith("值")
- 说明: 测试此字符串是否以指定的后缀结束。返回一个布尔值
- 示例:
public static void main(String[] args) {
String test = "我是Cs挽周,请官方给我个热榜,@@占位符@@谢谢了";
System.out.println(test.endsWith("我"));
}
- 结果:
String replaceAll(String str1,String str2)
- 语法:
字符串变量.replaceAll("值")
- 说明: 将某个内容全部替换成指定内容
- 示例:
public static void main(String[] args) {
String test = "我是Cs挽周,请官方给我个热榜,@@占位符@@谢谢了";
System.out.println(test.replaceAll("@","-"));
}
- 结果:
String repalceFirst(String str1,String str2)
- 语法:
字符串变量.repalceFirst("值")
- 说明: 将第一次出现的某个内容替换成指定的内容
- 示例:
public static void main(String[] args) {
String test = "我是Cs挽周,请官方给我个热榜,@@占位符@@谢谢了";
System.out.println(test.replaceFirst("@","-"));
}
- 结果:
String concat(String str)
- 语法:
字符串变量.concat("值")
- 说明: 在原有的字符串的基础上加上指定字符串
- 示例:
public static void main(String[] args) {
String test = "我是Cs挽周,请官方给我个热榜,@@占位符@@谢谢了";
System.out.println(test.concat(", 嗯?"));
}
- 结果:
boolean isEmpty()
- 语法:
字符串变量.isEmpty()
- 说明: 判断指定字符串是否为空
- 示例:
public static void main(String[] args) {
String test = "我是Cs挽周,请官方给我个热榜,@@占位符@@谢谢了";
System.out.println(test.isEmpty());
}
- 结果:
看完别忘了一键三连加关注哦,更多精彩文章请点击 Cs挽周 ! Java在线手册(点我跳转)
以上是关于String类的常用方法总结,Cs挽周带你玩转String类(图文总结超详细) !的主要内容,如果未能解决你的问题,请参考以下文章
游戏开发进阶新发带你玩转Unity日志打印技巧(彩色日志 | 日志存储与上传 | 日志开关 | 日志双击溯源)