目录
一、字符与整数的联系——ASCII码
每一个常用的字符都对应一个-128~127的数字,,二者之间可以相互转化。注意负数目前暂时没有与之对应的字符。
public class Main {
public static void main(String[] args) {
char c = 'a';
System.out.println((int)c);
int a = 97;
System.out.println((char)a);
}
}
二、Srting类
1、初始化
String a = "Hello World!";
String b = "My name is ";
String x = b; //储存到了相同的地址
String c = b + "syx"; //String类型可以通过加号拼接
String d = "My age is " + 18; //int在这里被隐式转化成String类型
String str = String.format("My age is %d",18);//格式化输出
String pi = "3.1415926";
double PI = Double.parseDouble(pi);//强制转化成double类型
2、String具有只读性,不能修改
public class Main {
public static void changeChar(String str1) {
str1 = "abc";
}
public static void main(String[] args) {
String str = "1234";
changeChar(str);
System.out.println(str);
}
}
上面例子说明我们str存的是“1234”对象的引用地址,然后我们调用changeChar方法,str会把引用地址传给str1,由于java中的String类是只读的,所以我们无法修改“1234”这个字符串对象的值。
str1=“abc”是重新创建了一个字符串,并把这个地址给str1,但是我们str还是指向“1234”的地址,所以输出还是1234。
3、访问String类型的字符
public class Main {
public static void main(String[] args) {
String str = "Roseanne Park";
for(int i=0;i<str.length();i++) {
System.out.print(str.charAt(i));//注意这里的charAt(i)
}
}
}
4、常用API
我们首先看一下split这个API
package org.syx;
import java.util.Scanner;
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
String str = "Roseanne Park BlackPink";
String[] str1 = str.split(" ");
System.out.println(Arrays.toString(str1));
}
}
去掉首尾的空白字符treim()
public class Main {
public static void main(String[] args) {
String str = " Roseanne Park BlackPink \n";
System.out.print(str.trim());
}
}
substring函数,这个第一个参数是我们要返回串的首下标,第二个参数不像c++一样是长度,第二个也是下标,是结尾的下标,但是结尾的下标取不到,只能取到前一个。
public class Main {
public static void main(String[] args) {
String str = "Roseanne Park BlackPink";
System.out.print(str.substring(0,10));
}
}
replace可以替换字符串和字符,我们也可以用它删除字符或者字符串,就是把他换成空串。
我们遍历String不方便的话,我们可以把他转化成字符数组并进行遍历。
public class Main {
public static void main(String[] args) {
String str = "Roseanne Park BlackPink";
char[] str1 = str.toCharArray();
for(char X : str1) {
System.out.println(X);
}
}
}
三、StringBuilder StringBuffer
String不能被修改,要是想要修改的话可以使用StringBuilder,StringBuffer。
StringBuffer线程安全,速度比较慢,StringBuilder线程不安全,速度较快
public class Main {
public static void main(String[] args) {
StringBuffer sb = new StringBuffer("Hello ");
sb.append("World");
System.out.println(sb);
for(int i=0;i<sb.length();i++) {
sb.setCharAt(i,(char)(sb.charAt(i)+1));
}
System.out.println(sb);
}
}
标签:java,String,void,----,static,str,字符串,public,str1
From: https://www.cnblogs.com/byAttention/p/16869919.html