Java String 类
字符串广泛应用 在 Java 编程中,在 Java 中字符串属于对象,Java 提供了 String 类来创建和操作字符串。
字符串的创建
-
创建字符串最简单的方式
String str = "hello";
注意:String创建的是不可变字符串,一旦创建,内容不能发生改变
如果需要对字符串做很多修改,那么应该选择使用 StringBuffer & StringBuilder 类。
String str = new String();
-
使用构造方法创建字符串
-
提供一个字符数组参数:
-
char[] helloArray = { 'r', 'u', 'n', 'o', 'o', 'b'};
String helloString = new String(helloArray);
System.out.println( helloString );
-
使用字节数组 创建一个字符串
- 如果存放的是整型数字,会转化为对应ASCII码的字符
//使用字节数组 创建一个字符串
byte[] name = {'a','b','c'};
String str4 = new String(name);
System.out.println(str4);
byte[] name2 = {97,98,99};
String str5 = new String(name2);
System.out.println(str4);
//使用字节数组里面的一部分 创建一个新的数组
String str6 = new String(name,0,2);
System.out.println(str6);
char[] hello = {'你','好','啊'};
String h = new String(hello);
System.out.println(h);
字符串常用方法
下面是 String 类支持的方法,更多详细,参看 Java String API 文档:
-
获取字符串中的一个字符 char charAt(int index)
String h = "hello";
char c = h.indexOf(2);
System.out.println(c);
-
获取字符串的长度
String site = "www.baidu.com";
int len = site.length();
System.out.println( "百度网址长度 : " + len );
-
== 与equals()辨析
- == 比较两个对象是否相同:地址
- equals 比较内容是否相同
//如果str1 与str 2 内容相同 ,则两者地址相同
String str1 = "abc";
String str2 = "abcd";
System.out.println(str1 == str2); //false
System.out.println(str1.equals(str2)); //false
-
连接两个字符串,返回值为一个新的字符串
使用:string1.concat(string2);
String nStr = str5.concat(h);
System.out.println(nStr);
-
两个字符串的比较 int compareTo(String anotherString)
- 通过返回值可以知道大小关系,如果返回值=0,则str1 = str2;如果返回值>0,则str1 > str2;如果返回值< 0,则str1 < str2.
-
int compareToIgnoreCase(String str) 忽略大小写
int result = str4.compareToIgnoreCase(str5);
System.out.println(result);
-
判断一个字符串是否包含另外一个字符串 contains
boolean ressult = "hello,world".contains("world");
System.out.println(ressult);
-
判断是否以某个字符串结尾,结尾,第几个字符开始以什么开始
String url = "http://www.baidu.com";
if (url.endsWith(".com")){
System.out.println("网址");
}
if (url.startsWith("http")){
System.out.println("http协议");
}
if (url.startsWith("www",7)){
System.out.println("万维网");
}
-
获取一个子字符串在另外一个字符串里面的位置,如果不存在 返回值为-1.
String string = "hello Java";
int index = string.indexOf("Java");
System.out.println(index);
-
获取子字符串
-
substring 从index到结尾
-
String sStr = string.substring(6);
System.out.println(sStr);
-
获取索引值从i到j的字符串
String sStr2 = string.substring(4,7);
System.out.println(sStr2);
-
将字符串转化为字符数组 char[] toCharArray()
-
将所有字符转化为小写 String toLowerCase()
-
将所有字符转化为大写 String toUpperCase()
-
将字符串前面和后面的空格字符删除String trim()
StringBuffer 和 StringBuilder类(可变字符串)
类型 | StringBuffer类 | StringBuilder类 |
---|---|---|
线程 | 线程安全 | 线程不安全 |
效率 | 效率不高 | 效率更高 |
方法:insert append delete replace
- append 在末尾追加
// 创建的同时先准备好6个字符的空间
StringBuffer sBuffer = new StringBuffer(6);
sBuffer.append("I ");
sBuffer.append("love ");
sBuffer.append("Java");
System.out.println(sBuffer);
- 插入数据 insert
sBuffer.insert(2, "also ");
System.out.println(sBuffer);
- 删除 delete
sb.delete(2,6);
System.out.println(sb);
- 替换 replace
// start end string
int start = sBuffer.indexOf("Android");
int end = start + "Android".length();
sb.replace(start,end,"you!!!");
System.out.println(sBuffer);
- 反转 reverse
sb.reverse();
System.out.println(sb);
输出结果:
输出结果
心得体会:
要提高自己的学习能力,如何快速地了解一个类里面的方法,并且学会运用。
网友评论