在Java中String类有一些特殊,Java中规定String是一个类,但是它可以像四类八种声明变量一样声明一个对象。通常在我们刷力扣的题的时候,运用String会更加方便一些,当然了,前提是你要熟悉他里面包含的常用的方法。下面来介绍一下String中有哪些方法。
定位:
如果想找到一个字符串的具体哪个字符或具体字符的位置,可以用charAt(int a)、indexof(char s)方法来实现,具体代码:
public static void main(String[] args) {
String s = "hello world";
System.out.println("字符串中的第一个字符" + s.charAt(1));//定位
System.out.println("字符串中l第一次出现的位置: " + s.indexOf('l'));
System.out.println("字符串中最后一次出现的位置: " + s.lastIndexOf('l'));
}
替换:
在字符串中替换一个字符时,用replace(String s, String s1),,截取一段字符串的方法是substring(int i),将字符串按照某一字符拆开的方法是split(String s),具体代码实现为:
String a = "java王";
//substring()方法的作用是截取
System.out.println("截取第三个字符到末尾的结果是:" + a.substring(2));
//split()方法将字符串按照某一字符分裂开
String[] arrays = new String[5];
//将字符串拆分成字符串数组
arrays = a.split("");
System.out.println(Arrays.toString(arrays));
数组:
将字符串拆分成字符串数组和char数组的方法是:split("")、toCharArray();
//将字符串拆分成字符串数组
arrays = a.split("");
System.out.println(Arrays.toString(arrays));
char[] array = new char[5];
//将字符串拆分成字符数组
array = a.toCharArray();
System.out.println(Arrays.toString(array));
==和equals的区别:
在Java中==号用来判断运算符两边变量的地址是否相同,如果相同为true,反之为false这里牵扯到了一个常量池的问题,在Java的内存中有一片区域为常量池。常量池中保存着127~-128剩下的常量定义一个就会在常量池中创建一个。所以常量池中如果string声明变量像基础数据类型那样,从栈指向常量池的话,两个值应该是相等的,如果用new在堆中开辟了一片空间的话,那么此时他就不是相等的了,因为地址不一样。所以用equals()可以比较两个地址中的值是否一致。
//字符串的判断
String test = "Java王";
String test1 = new String("Java王");
String test3 = "Java王";
System.out.println(test == test1);
System.out.println(test3 == test);
System.out.println(test.equals(test1));
结果为:
false
true
true
字符串转换为整数:
Integer.parseInt()方法可以实现
//字符串转化为整数
test = "12314564";
int i = Integer.parseInt(test);
System.out.println(i);
字符串反转:
在StringBuffer中用reverse()可以反转字符串。
//字符串反转方法
StringBuffer test4 = new StringBuffer("java王");
System.out.println(test4);
System.out.println(test4.reverse());
结果为:
java王
王avaj