Java10字符串String

字符串

1 创建字符串的方式

(1)三种构造方法

//创建一个空白字符串
public String();
//根据字符数组的内容,来创建字符串
public String(char[] array);
//根据字节数组的内容,来创建字符串
public String(byte[] array);

(2)一种直接创建

String str = "hello";
public static void main(String[] args){
	String str1 = new String("hello");
	char[] charArray = {'h','e','l','l','o'};
	String str2 = new String(charArray);
	byte[] byteArray = {97, 98, 99 };
	String str3 = new String(byteArray);
	String str4 = "hello";
}
2 字符串常量池

程序中直接写上双引号字符串,就在字符串常量池中。

  • 对于基本类型来说,== 是进行数值比较;
  • 对于引用类型来说,== 是进行地址值比较;
3 记

1 手动入池:

String str3 = new String("hello").intern();

2 内容比较:
为避免null异常,要将常量"hello"放到前面
"hello".equals(str)):字符串内容比较
"hello".equalsIgnoreCase(str):忽略大小写进行比较
str.compareTo(str):比较两个字符串大小关系,返回大于1,小于-1,相等0

3 字符串获取:
str.length():获取字符串长度
str1.concat(str2):将str1与str2字符串进行拼接,返回新字符串
str.charAt(index):返回指定索引位置的字符
str.substring(2):从2处截取到字符串末尾
str.substring(2,4):从2处截取到4(不包含4)

5 字符串与字符数组的转换:
str.toCharArray():返回字符数组char[ ]
str.getBytes():返回字节数组byte[ ]

//字符数组转字符串的两种方式
char[] arrays = {'a','b','g'};
String ret = new String(arrays);
//或
String.copyValueOf(arrays);

6 字符串的分割:
"aaa,bbb,ccc".split(","):将"aaa,bbb,ccc"按照“,”分割成多个部分,返回字符串数组String[ ]
str.split(" ",5):将str按空格分割为字符串数组,限制字符串数组长度为5

注意:
"aaa.bbb.ccc".split("\\."):切割英文句点必须写"\."
\表示对\进行转义,\.表示对一个斜杠转义后,再对.进行转义

7 字符串查找
str.contains(str1):判断字符串是否包含str1,包含返回true
str.indexOf("he"):查找"he"在str中出现的第一次索引位置
str.indexOf("he",2):从2处开始查找"he"在str中出现的第一次索引位置
str.lastIndexOf(str1):从后向前查找字符串位置
str.lastIndexOf(str1,2):由2处从后向前查找字符串位置
str.startsWith(str1):判断是否以指定字符串开头
str.startsWith(str1,2):从2出开始判断是否以指定字符串开头
str.endsWith(str1):判断是否以指定字符串结尾

8 字符串替换
str.replaceAll("1","2"):将字符串str中的1全部替换为2
str.replaceFirst("1","2"):将字符串str中的第一个1替换为2
str.replace(old,new):将str中的old字符串换为new字符串
等同于str.replaceAll(old,new);

注意:
字符串为不可变对象,替换不修改当前对象,而是产生了一个新的字符串

9 其他
str.trim():去掉字符串的左右空格,保留中间空格
str.toUpperCase :字符串转大写
str.toLowerCase:字符串转小写
str.intern():字符串入池操作
str1.concat(str2):字符串拼接相当于+,不入池
str.length():获取字符串长度
str.isEmpty:判断是否为空字符串即长度为0,""

10 数字字符串转int
Integer.valueOf(String s)

public static Integer valueOf(String s) throws NumberFormatException {
        return Integer.valueOf(parseInt(s, 10));
    }
 public static void main(String[] args) {
        String[] nums={"5","7"};
        int gg = Integer.valueOf(nums[1]);
        System.out.println(gg);//7
    }

注意:

  • " " +任何类型 返回的都是字符串
StringBuffer和StringBuilder

StringBuffer和StringBuilder功能相同,唯一的区别是StringBuffer是线程安全的;即其所有的内置函数都被关键字synchronized修饰。

  • StringBuffer的安全性高,效率低。
  • StringBuilder安全性低,效率高。
  • String的内容不可修改,StringBuffer、StringBuilder的内容可以进行修改。

String和StringBuffer类不能直接转换,要转换可采用如下原则

  • String转StringBuffer:可通过StringBuffer的构造方法append()方法
StringBuffer str = new StringBuffer("hello");
str.append("world").append("!!!");
  • StringBuffer转String:调用toString()方法
StringBuffer str = new StringBuffer("hello");
String str1 = str.toString();

StringBuffer和StringBuilder的常用方法相同

  1. append()方法:可以向StringBuffer中添加各种数据,boolean, char, char[], double, float, int, long,Object, String, StringBuffer.
  2. charAt()
  3. delete(int start, int end): 删除指定范围的字符
  4. deleteCharAt(int index): 删除指定位置的字符
  5. indexOf(String str): 返回指定字符串第一次出现的索引
  6. public synchronized StringBuffer insert(int offset,各种类型数据 b);
  7. length();
  8. reverse(): 反转
  9. setLength(int newLenth): 设定StringBuffer的长度,常用来清空StringBuffer
  10. toString()
发布了54 篇原创文章 · 获赞 6 · 访问量 4825

猜你喜欢

转载自blog.csdn.net/glpghz/article/details/103269926
今日推荐