String类

String类,第1张

String类

String类:代表字符串;是一个final类,代表不可变的字符序列。字符串是常量,用双引号括起来,创建之后不能更改。

String对象的创建
String str = “abc”;
String s2 = new String(String original);
String s3 = new String(char[] ch);
String s4 = new String(char[] ch,int startIndex,int ncount);

面试题
String s1 = “abc”;
String s2 = “def”;
String s3 = “abcdef”;
String s4 = “abc” + “def”;
String s5 = s1 + “def”;
String s6 = “abc” + s2;
String s7 = s5.intern();

s3 == s4(true) s3==s5(false) s3 == s6(false) s5 == s6(false) s3 == s7(true)
原因:1.字面量加字面量结果在常量池当中
2.只要有变量进行相加,结果在堆当中
3.如果拼接结果使用intern,结果在常量池当中

String方法
int length():获取字符串长度

				String str = "HelloWorld";
        System.out.println(str.length());//10

char charAt(int index):某个下标下,字符的值,下标从0开始计算

			String str = "HelloWorld";
        System.out.println(str.charAt(5));//'w'

boolean isEmpty():判断是否为空(空的话返回true)

			String str = "HelloWorld";
        String str2 = "";
        System.out.println(str.isEmpty());//false
        System.out.println(str2.isEmpty());//true

String toLowerCase():将所有字母全部转换成小写

		String str = "HelloWorld";
      System.out.println(str.toLowerCase());//helloworld

String toUpperCase():将所有字母转换为大写

	String str = "HelloWorld";
  System.out.println(str.toUpperCase());//HELLOWORLD

String trim():去掉前后空白

	String str = "   HelloWorld   ";
  System.out.println(str.trim());//HelloWorld

boolean equals():比较字符串是否一致

	String str = "HelloWorld";
  String str2 = "helloworld";
  System.out.println(str.equals(str2));//false

boolean:equalsIgnoreCase():比较字符串是否一致忽略大小写

	String str = "HelloWorld";
  String str2 = "helloworld";
  System.out.println(str.equalsIgnoreCase(str2));//true

String concat():在字符串后面+上数据

	String str = "HelloWorld";
  String str2 = "helloworld";
  System.out.println(str.concat(str2));//HelloWorldhelloworld

int compareTo():比较两个字符串的大小,正数为大于,0相等,负数小于(从首字母开始比,不看长度)

	String str = "HelloWorld";
  String str2 = "helloworld";
  System.out.println(str.compareTo(str2));//-32

String substring(int beginIndex):返回一个字符串,从beginIndex开始截取,到最后

	String str = "HelloWorld";
  System.out.println(str.substring(1));//elloWorld

String substring(int beginIndex,int endIndex):返回一个字符串,从beingIndex开始到endIndex-1结束

	String str = "HelloWorld";
  System.out.println(str.substring(1,6));//elloW

Boolean endsWith(String sufflx):判断字符串是否以sufflx结束

	String str = "HelloWorld";
   System.out.println(str.endsWith("ld"));//true

Boolean startsWith(String sufflx):判断字符串是否以sufflx开始

	String str = "HelloWorld";
   System.out.println(str.startsWith("Heq"));//false

Boolean startsWith(String sufflx,int toffset):判断字符串在toffset位置,是否以sufflx开始

	String str = "HelloWorld";
  System.out.println(str.startsWith("llo",2));//false

int indexOf(String s):判断字符串s从前开始检索第一次出现的位置,找不到返回-1

	String str = "HelloWorld";
  System.out.println(str.indexOf("He"));//0

int lastIndexOf(String s):判断字符串s从后开始检索第一次出现的位置,找不到返回-1

  String str = "HelloWorld";
  System.out.println(str.lastIndexOf("Hed"));//0

int indexOf(String s,int index):判断字符串s,从下表index之后从前开始检索第一次出现的位置,找不到返回-1

	String str = "HelloWorld";
  System.out.println(str.indexOf("He",1));//-1

int lastIndexOf(String s,intindex):判断字符串s,从下表index之后,从后开始检索第一次出现的位置,找不到返回-1

  String str = "HelloWorld";
  System.out.println(str.lastIndexOf("l",8));//8
  System.out.println(str.lastIndexOf("l",7));//3

boolean contains(charSequences s):判断字符串是否包含序列化的s,存在的话返回true

	String str = "HelloWorld";
  System.out.println(str.contains("llo"));//true

String replace(charSequences oldstr,charSequences newstr):将newstr替换原先里面oldstr

	String str = "HelloWorld";
  System.out.println(str.replace("l","dd"));//HeddddoWorddd

String replace(char oldc,char newc):将字符newc替换原先里面oldc

	String str = "HelloWorld";
  System.out.println(str.replace("l","d"));//HeddoWordd

String replaceAll(String ,String )//

	String str = "HelloWorld";
   System.out.println(str.replaceAll("el","edd"));//

String replaceFirst(String s,String str)//将第一个s替换为str

	String str = "HelloWorld";
  System.out.println(str.replaceFirst("l","edd"));//HeeddloWorld

Boolean matches(String regex)//判断字符串是否符合给定的正则表达式

	String str = "HelloWorld";
  System.out.println(str.matches(""));

String[] split(String regex)//根据正则表达式拆分数据
String[] split(String regex,int limit)//根据正则表达式拆分数据

String转换为基本数据类型以及包装类
基本数据类型 变量名 = 基本数据类型.Parse***(str);

	String str = "123";
  int num = Integer.parseInt(str);

将基本数据类型,包装类转换为String类型
String —>String.valueOf(***)

	int num = 223;
   String str = String.valueOf(num);

String 与 char[]之间的转换
String转换为char[] 调用toCharArray方法

	 String str = "abc123";
   char[] ch = str.toCharArray();
char[] 转换为String,调用String构造器
	char[] ch = new char[]{'a','b','c'};
  String str = new String(ch);
  System.out.println(str);

String与byte[]之间的转换
String转换为byte[]调用getBytes方法

	String str = "newyear";
  byte[] bt = str.getBytes()

将byte[]转换为String:通过构造器
new String()

StringBuffer,StringBuilder,String区别
String:不可变的字符序列
StringBuffer:可变的字符序列 线程安全的,效率低
StringBuilder:可变的字符序列 线程不安全的,效率高

效率而言:StringBuilder > StringBuffer >String

StringBuffer常用方法
append(***); 字符串拼接
delete(int start,int end); 删除指定位置的数据
replace(int start,int end,String str); 将(start,end)位置的数据替换为str
insert(int offset,***) 在指定位置插入***
reverse() 将当前字符序列反转
int indexOf(str) //判断字符串s从前开始检索第一次出现的位置,找不到返回-1
String subString(int start,int end) 截取字符串
int length() 获取长度
char charAt(int index)获取指定位置的数据
setCharAt(int index,char ch) 将指定位置的数据设置为ch

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5686235.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存