1.String字符串
我们常用的字符串属于引用类型,它可以包含0至n个字符,String使用双引号,字符串的拼接也可以使用+
public class HelloWorld { public static void main(String[] args) { String s = "我爱中国"; String s1 = "i " + "love " + "china"; String s2 = null; // String s3; // Error:(9, 28) java: 可能尚未初始化变量s3 System.out.println(s); // 我爱中国 System.out.println(s2); // null System.out.println(s1); // i love china }}
字符串不可变,如果进行重新赋值,那么变量就会指向新的内存
对于字符串来讲,可以将将其赋予null,注意null跟“”不一样,后者是变量指向“”这个字符串,另外,如果字符串不进行赋值就调用,就会报错
字符串也有内部命令可以进行拼接字符串,格式化字符串,例如:
public class HelloWorld { public static void main(String[] args) { String s = "我爱".concat("中国"); System.out.println(s); // 我爱中国 String x = String.format("%s爱中国%d年", "我", 100); System.out.println(x); // 我爱中国100年 } }
对于字符串的操作,先讲数组再将
2.数组
定义一个数组使用:类型[],这个跟go是相反的,不要搞混了,数组有两个特点:
数组初始化未赋值状态下,里面所有的值都是空值
数组的大小一旦定义,就不可变,例如 int[] x = new int[5],这个数组的大小就是5。
public class HelloWorld { public static void main(String[] args) { int[] n = new int[5]; String[] m = new String[5]; System.out.println(n); // [[email protected] System.out.println(n[0]); // 0 System.out.println(m); // [Ljava.lang.String;@77459877 System.out.println(m[0]); // null n[1] = 5; m[4] = "a"; System.out.println(n); // [[email protected] System.out.println(n[1]); // 5 System.out.println(m); // [Ljava.lang.String;@77459877 System.out.println(m[4]); // a int[] x = new int[]{1, 2, 3, 4, 5}; // 这种写法不用声明数组长度,由编译器自行推断出 System.out.println(x); // [[email protected] System.out.println(x[1]); // 2 x[1] = 100; System.out.println(x); // [[email protected] System.out.println(x[1]); // 100 } }
从上述可以看出,打印出来的数字是地址,对数组内容进行更改,数组地址不会发生辩护,因此可以判定,数组没有发生变化,数组中的元素指向了不同的内存
3.字符串操作
下面引用了部分字符串操作
public class HelloWorld { public static void main(String[] args) { char[] s = new char[]{‘我‘, ‘爱‘, ‘中‘, ‘国‘, ‘爱‘}; String x = new String(s); System.out.println(x); //我爱中国爱 System.out.println(x.compareTo("我爱中国")); //1 把这个字符串和另一个对象比较。 System.out.println(x.compareTo("我爱中国爱")); //0 把这个字符串和另一个对象比较。0代表完全一致 System.out.println(x.split("")); //[Ljava.lang.String;@38af3868 根据给定正则表达式的匹配拆分此字符串。 System.out.println(x.split("")[0]); //我 根据给定正则表达式的匹配拆分此字符串。 System.out.println(x.replace(‘爱‘, ‘你‘)); //我你中国你 返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 得到的。 System.out.println(x.replaceFirst("爱", "love")); //我love中国爱 使用给定的 replacement 替换此字符串匹配给定的正则表达式的第一个子字符串。。 System.out.println(x.length()); //5 返回长度 System.out.println(x.charAt(1)); // 爱 返回指定索引处的 char 值。 System.out.println(x.contains("我")); // true 是否包含指定指定字符串 System.out.println(x.endsWith("爱")); // true 是否以某字符串结尾 System.out.println(x.indexOf(1)); // -1 返回指定子字符串在此字符串中第一次出现处的索引。-1代表没找到 System.out.println(x.indexOf("爱")); // 1 返回指定子字符串在此字符串中第一次出现处的索引。 System.out.println(x.indexOf("我", 2)); // -1 判断index的位置是否是指定字符串 String n = " n N "; System.out.println(n); // " n N " System.out.println(n.trim()); // "n N" 去掉前后的空白 System.out.println(n.toUpperCase()); // " N N " 所有字母大写 System.out.println(n.toLowerCase()); // " n n " 所有字母小写 } }
数组操作会放在流程控制里面讲。
原文地址:https://www.cnblogs.com/yangshixiong/p/12157908.html
时间: 2024-11-09 09:20:28