String类常用方法(重要)
Java String中的方法非常多也非常实用,而且是经常要用到的,写得多了就能记住了哈(记不住也是正常的,翻一下api文档,翻一下笔记)
int length()
:返回字符串的长度: return value.length
char charAt(int index)
: 返回某索引处的字符return value[index]
boolean isEmpty()
:判断是否是空字符串:return value.length == 0
String toLowerCase()
:使用默认语言环境,将 String 中的所字符转换为小写
String toUpperCase()
:使用默认语言环境,将 String 中的所字符转换为大写
String trim()
:返回忽略前导空白和尾部空白的字符串
boolean equals(Object obj)
:比较字符串的内容是否相同
boolean equalsIgnoreCase(String anotherString)
:与equals方法类似,忽略大小写
String concat(String str)
:将指定字符串连接到此字符串的结尾。 等价于用“+”
int compareTo(String anotherString)
:比较两个字符串的大小
String substring(int beginIndex)
:返回一个新的字符串,它是此字符串的从beginIndex开始截取到最后的一个子字符串。
String substring(int beginIndex, int endIndex)
:返回一个新字符串,它是此字符串从beginIndex开始截取到endIndex(不包含)的一个子字符串。
boolean endsWith(String suffix)
:测试此字符串是否以指定的后缀结束
boolean startsWith(String prefix)
:测试此字符串是否以指定的前缀开始
boolean startsWith(String prefix, int toffset)
:测试此字符串从指定索引开始的子字符串是否以指定前缀开始
boolean contains(CharSequence s)
:当且仅当此字符串包含指定的 char 值序列时,返回 true
int indexOf(String str)
:返回指定子字符串在此字符串中第一次出现处的索引
int indexOf(String str, int fromIndex)
:返回指定子字符串在此字符串中第一次出现处的索引,从指定的索引开始
int lastIndexOf(String str)
:返回指定子字符串在此字符串中最右边出现处的索引
int lastIndexOf(String str, int fromIndex)
:返回指定子字符串在此字符串中最后一次出现处的索引,从指定的索引开始反向搜索
String replace(char oldChar, char newChar)
:返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所 oldChar 得到的。
String str1 = "北京你好,你好北京";
String str2 = str1.replace('北', '南');
System.out.println(str1);//北京你好,你好北京
System.out.println(str2);//南京你好,你好南京
String str3 = str1.replace("北京", "上海");
System.out.println(str3);//上海你好,你好上海
boolean matches(String regex)
:告知此字符串是否匹配给定的正则表达式。
String[] split(String regex)
:根据给定正则表达式的匹配拆分此字符串。
String[] split(String regex, int limit)
:根据匹配给定的正则表达式来拆分此字符串,最多不超过limit个,如果超过了,剩下的全部都放到最后一个元素中。
String与基本数据类型、包装类之间的转换
String --> 基本数据类型、包装类 -> 调用包装类的静态方法:parseXxx(str)
基本数据类型、包装类 --> String -> 调用String重载的valueOf(xxx)
public void StringToBasic() {
String str1 = "123";
int i = Integer.parseInt(str1);
System.out.println(i);
System.out.println(i == 123);//true
int j = 456;
String s = String.valueOf(j);
System.out.println(s);
System.out.println(s.equals("456"));//true
}
String --> char[] -> 调用String的toCharArray()
char[] --> String -> 调用String的构造器
public void BasicToString() {
String s1 = "helloword";
char[] chars = s1.toCharArray();
for (int i = 0; i < chars.length; i++) {
System.out.println(chars[i]);
}
char[] charArray = new char[]{'h', 'e', 'l', 'l', 'o'};
String s2 = new String(charArray);
System.out.println(s2);
}
编码:String --> byte[] -> 调用String的getBytes()
解码:byte[] --> String -> 调用String的构造器
编码:字符串 --> 字节 (看得懂 --->看不懂的二进制数据)
解码:编码的逆过程,字节 --> 字符串 (看不懂的二进制数据 ---> 看得懂)
说明:解码时,要求解码使用的字符集必须与编码时使用的字符集一致,否则会出现乱码。
@Test
public void StringToByteTest() throws UnsupportedEncodingException {
String s1 ="你好java世界";
byte[] bytesArray = s1.getBytes();//使用默认字符集编码
System.out.println(Arrays.toString(bytesArray));//[-28, -67, -96, -27, -91, -67, 106, 97, 118, 97, -28, -72, -106, -25, -107, -116]
byte[] gbks = s1.getBytes("gbk");//使用gbk编码集合
System.out.println(Arrays.toString(gbks));//[-60, -29, -70, -61, 106, 97, 118, 97, -54, -64, -67, -25]
System.out.println("--------------------------------");
String str1=new String(bytesArray);//使用默认字符进行解码
System.out.println(str1);//你好java世界
String str2 = new String(gbks);//使用默认字符对gbk编码进行解码
System.out.println(str2);//���java����解码错误,出现中文乱码,原因:编码和解码不一致
String str3 = new String(gbks,"gbk");//使用gbk格式进行解码
System.out.println(str3);//你好java世界,解码正确,原因:编码和解码一致
}
与StringBuffer、StringBuilder之间的转换
String -->StringBuffer、StringBuilder -> 调用StringBuffer、StringBuilder构造器
@Test
public void StringToStringBufferTest(){
String str1 ="helloword";
StringBuffer stringBuffer = new StringBuffer(str1);
System.out.println(stringBuffer);//helloword
StringBuilder stringBuilder = new StringBuilder(str1);
System.out.println(stringBuilder);//helloword
stringBuffer.append(" is StringBuffer");
System.out.println(stringBuffer);//helloword is StringBuffer
stringBuilder.append(" is StringBuider");
System.out.println(stringBuilder);//helloword is StringBuider
}
StringBuffer、StringBuilder --> String -> 调用String构造器 / StringBuffer、StringBuilder的toString()
public void StringBuiderOrStringBufferToStringTest() {
StringBuffer sb1 = new StringBuffer("hello StringBuffer");
System.out.println(sb1);
StringBuilder sb2 = new StringBuilder("hello StringBuider");
System.out.println(sb2);
System.out.println("----------------------");
String str1 = new String(sb1);
System.out.println(str1);
String str2 = new String(sb2);
System.out.println(str2);
System.out.println("----------------------");
System.out.println(sb1.toString());
System.out.println(sb2.toString());
}
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- [已解决]报错: ["Department":"??????????","Addr":"?????????????690???????"]
- 例16数字判断
- selector的使用
- Python获取xml数据
- Scrapy项目实战:爬取某社区用户详情
- 获取后缀名的文件
- [未解决]报错:requests post请求无法返回数据
- AkShare-股票数据-注册制审核
- tkinter的简单应用
- [已解决]报错: airtest PermissionError: [Errno 13] Permission denied
- LeetCode SQL
- 燕十八mysql复习
- 15.selenium_case04
- 16.ajax_case01
- 1.Python GUI之tkinter介绍