String 分割字符串
String s = "1,2,3,4";
//未使用split分割前
System.out.println(s.length());
//使用split分割后
String[] ssplit = s.split(",");
System.out.println(ssplit.length);
//两个参数都有的时候,第一个为用来分割的符号,第二个为分割后的数组长度
//当设置分割后的数组长度比分割后的长度不同时以分割长度为准
String s = "1,2,3,4";
System.out.println(s.split(",", 6).length);
String类构造方法的使用和理解
直接赋值的方式获取一个字符串对象
其字符串会存在串池(StringTable)中,也可理解为字符串常量池(堆内存)(常量池(常量池==Class常量池,Java文件被编译成 Class文件,Class文件中除了包含类的版本、字段、方法、接口等描述信息外,还有一项就是常量池,常量池是当Class文件被Java虚拟机加载进来后存放在方法区 各种字面量 (Literal)和 符号引用)
//以下代码将字符串"1,2,3,4"赋值给了s变量
String s = "1,2,3,4";
使用new的方式来获取一个字符串对象,对象中不含任何内容的空字符(空参构造)
String a =new String();
传递一个字符串再创建一个字符串对象
//public String(String original) 构造方法,传递一个字符串再创建一个字符串对象
String b =new String("123");
传递一个字符数组再创建一个字符串对象
//public String(Char[ ] chs)构造方法 ,传递一个字符数组再创建一个字符串对象
char[] chs = {'1','2','3','4'};
String s =new String(chs);
将Char字节数组的一部分转换成字符串
//String(字符数组名,数组元素开始位置,转换长度);将Char字节数组的一部分转换成字符串
char[] chs = {'1','2','3','4'};
String a =new String(chs,0,2);
传递一个字节数组再创建字符串对象
//public String(byte[] chs) 构造方法,传递一个字节数组再创建字符串对象
byte[] bytes = {97,98,99};
String b = new String(bytes);//输出abc(ASCLL编码对照表)
将bytes字节数组的一部分转换成字符串
//将bytes字节数组的一部分转换成字符串,格式为String(数组名,数组元素开始位置,转换长度);
String c = new String(bytes,0,2);
System.out.println(c);
截取字符串
subString(x,y): 该方法是截取下标x~y-1 的字符串
//subString(x,y) 该方法是截取下标x~y-1 的字符串
String s = "123456";
s = s.substring(0,3);
##### subString(x) : 该方法是截去前x个字符串后的字符串。
String s = "123456";
s = s.substring(3);
字符串常量
部分内容来自该网站
Java 语言使用 final 关键字来定义一个常量,其语法如下所示:
final dataType variableName = value
其中,final 是定义常量的关键字,dataType 指明常量的数据类型,variableName 是变量的名称,value 是初始值。
final 关键字表示最终的,它可以修改很多元素,修饰变量就变成了常量。例如,以下语句使用 final 关键字声明常量。
public class HelloWorld {
// 静态常量
public static final double PI = 3.14;
// 声明成员常量
final int y = 10;
public static void main(String[] args) {
// 声明局部常量
final double x = 3.3;
}
}
Java 的字符型常量值是用单引号引起来的一个字符,如 ‘e’、E’。需要注意的是,Java 字符串常量值中的单引号和双引号不可混用。双引号用来表示字符串,像 “11”、“d” 等都是表示单个字符的字符串。
字符串判等,判断字符串是否为null
- 空字符串与null区别
1、类型 null表示的是一个对象的值,而并不是一个字符串。例如声明一个对象的引用,String a = null ; "“表示的是一个空字符串,也就是说它的长度为0。例如声明一个字符串String str = “” ;
2、内存分配 String str = null ; 表示声明一个字符串对象的引用,但指向为null,也就是说还没有指向任何的内存空间; String str = “”; 表示声明一个字符串类型的引用,其值为”"空字符串,这个str引用指向的是空字符串的内存空间;在java中变量和引用变量是存在栈中(stack),而对象(new产生的)都是存放在堆中(heap)
== 和equals 最大的区别是
== 是运算符,如果是基本数据类型,则比较存储的值;如果是引用数据类型,则比较所指向对象的地址值。
equals是Object的方法,比较的是所指向的对象的地址值,一般情况下,重写之后比较的是对象的值。
String str = null;
//方法一:比较所指向的对象的地址值
System.out.println(str == null|| str.equals(""));
//方法二: 比较字符串长度
System.out.println((str == null || str.length() == 0));
//方法三:使用isEmpty() 方法来判断字符串是否为空
System.out.println(str == null || str.isEmpty());
//方法四
System.out.println((str == null || str == ""));
String类型转换
String str = "123456";
//String类型转换为int类型
int nstr = Integer.parseInt("123");
System.out.println(nstr);
String str = "123456";
//String类型转换为int类型
int nstr = Integer.parseInt("123");
//将int类型转换为String类型
String str1 = String.valueOf(nstr);
System.out.println(str1);
String str = "123456";
//public char[] toCharArray()将当前字符拆分成为字符数组
char[] chars = str.toCharArray();
for (int i = 0; i < chars.length; i++) {
System.out.println(chars[i]);
}
String str = "abcd";
//getBytes()将String转成byte类型的数字
byte[] bytes = str.getBytes();
for (int i = 0; i <bytes.length; i++) {
System.out.println(bytes[i]);
}
出现的数字是又ASCll码转换成数字的
使用Double.parseDouble(String)将字符串转换为双精度
String str ="123.45";
//使用Double.parseDouble(String)将字符串转换为双精度
double dstr = Double.parseDouble(str);
使用Double.valueOf(String)将字符串转换为双精度double
String str = "123.45";
//使用Double.valueOf(String)将字符串转换为双精度double
double dstr = Double.valueOf(str);
System.out.println(dstr);
使用Double类的构造函数字符串转换为双精度double
String str = "123.45";
//使用Double类的构造函数字符串转换为双精度double
double dstr = new Double(str);
System.out.println(dstr);
String类型转float类型
float的意思是“浮动”,是java中的浮点型数据类型,用于存储单精度浮点数,默认值是“0.0f”,内存分配4个字节,占32位,有效小数位6-7位。
String str = "123.45";
//使用Float.parseFloat(string)将String类型转换为float类型
float fstr =Float.parseFloat(str);
System.out.println(fstr);
String类型转short类型
short类型是一种基本数据类型,用于表示16位有符号整数,取值范围为-32768到32767
使用 Short.parseShort() 方法
String str = "123";
//使用Float.parseFloat(string)将String类型转换为float类型
Short str1 =Short.parseShort(str);
System.out.println(str1);
使用基本数据类型的对象包装器将String转换为short
String str = "123";
//使用基本数据类型的对象包装器将String转换为short
Short str1 =new Short(str);
System.out.println(str1);
字符串连接运算
使用连接运算符“+”
String swh = "武汉";
String shz = "杭州";
System.out.println(swh + "欢迎您!");
System.out.println(shz + "欢迎您!");
使用 concat() 方法
在 Java 中,String 类的 concat() 方法实现了将一个字符串连接到另一个字符串的后面,格式为“字符串1.concat (“字符串2”);”
String Chn = "中国";
System.out.println(Chn.concat("北京").concat("天安门"));
字符串同其他基本数据类型进行连接
实现将字符串与整型、浮点型变量相连并输出结果
//字符串同其他基本数据类型进行连接
String food ="饺子";// 字符串
int num =10;// 整型变量
float cash = 20.5f;// 浮点型变量
System.out.println("我吃了"+ num +"个" +food +"价格是"+ cash+"元");