String
创建string对象
package Helloworld;public class dome1 {public static void main(String[] args) {// 1.直接双引号得到字符串对象,封装字符串对象String name = "lihao";System.out.println(name);// 2. new String 创建字符串对象,并调用构造器初始化字符串String rs1= new String();String rs2 = new String("lihao");char[] chars ={'a','黑','马'};String rs3 = new String(chars);System.out.println(rs3);byte[] bytes = {97,98,99};String rs4 = new String(bytes);System.out.println(rs4);}}
String常用方法
package Helloworld;
public class dome1 {public static void main(String[] args) {String s = "Java";// 1. 获取字符串的长度System.out.println(s.length());// 2.提取字符串中的某个索引位置处的字符char c = s.charAt(1);System.out.println(c);//3.字符串遍历for (int i = 0; i < s.length(); i++) {char ch = s.charAt(i);System.out.print(ch);}// 3.把字符串转换成字符数组,在进行遍历char[] chars = s.toCharArray();for (int i = 0; i < chars.length; i++) {System.out.println(chars[i]);}// 4.判断字符串内容,内容一样就返回trueString s1 = new String("牛逼克拉斯");String s2 = new String ("牛逼克拉斯");System.out.println(s1.equals(s2));// 5. 忽略大小写比较字符串内容String c1 = "123456aA";String c2 = "123456Aa";System.out.println(c1.equals(c2));System.out.println(c1.equalsIgnoreCase(c2));//6.截取字符串内容(包括前的不包括后面的)String s3 = "Java是最好的编程语言之一";String rs = s3.substring(0,8);System.out.println(rs);// 7.从当前索引位置一直截到字符串的末尾String rs2 = s3.substring(5);System.out.println(rs2);//8.把字符串中某个内容替换成新内容,并返回新的字符串对象给我们String info = "这个电影是个垃圾,垃圾电影!!";String info1= info.replace("垃圾","**");System.out.println(info);System.out.println(info1);//9.判断字符串中是否包含某个关键字String info3 = "Java是最好的语言";System.out.println(info3.contains("Java"));//10.判断字符串是否以某个字符串开头String rs4 = "张三丰";System.out.println(rs4.startsWith("张三"));//11.把字符串按照指定内容分割成多个字符串String rs5 = "张无忌,张三丰,白月光,朱砂痣";String[] names= rs5.split(",");for (int i = 0; i < names.length; i++) {System.out.println(names[i]);}}
}
注意事项:
(1)String的对象是不可变字符串对象
(2)只要是"..."方式写出的字符串对象,会存储到字符串常量池,且相同内容的字符串只存储一份,
但是通过new方式创建字符串常量,每new一次都会产生一个新的对象放到堆内存中
public class test1 {public static void main(String[] args) {String s1 = "abc";String s2 = "abc";System.out.println(s1 == s2); // truechar[] chars={'a','b','c'};String a1 = new String (chars);String a2 =new String (chars);System.out.println(a1 == a2); // false}}
区别一点就是:"....."字符串对象是放到堆内存中的字符串常量池,每一回创建字符串对象的时候,都会在字符串常量池中去找,没有的话,在字符串常量池中创建,有的话,直接将这个的地址返回String对象,
但是(1)new出来的东西,是直接放到堆内存中的不管是不是字符串,即便是字符串也是直接在堆内存中开辟空间去存放(2)字符串运算出来的东西也会直接放到堆内存中
ArrayList
常见的方法
package demo;import java.util.ArrayList;public class test1 {public static void main(String[] args) {// 1. 创建一个ArrayList的集合对象ArrayList list = new ArrayList();list.add("李小谦");list.add(100);list.add(58);list.add("java");System.out.println(list);// ArrayList<String> list1 = new ArrayList<String>();ArrayList<String> list1 = new ArrayList<>();list1.add("李小谦");list1.add("java");System.out.println(list1);// 2.往集合中的某个索引位置处添加一个数据list.add(1,"MySQL");System.out.println(list);// 3.根据索引获取集合中某个索引位置的值String rs1 = list1.get(0);System.out.println(rs1);String rs2 = (String) list.get(0);System.out.println(rs2);int num = (int)list.get(3);System.out.println(num);// 4 .获取集合的大小(返回集合中存储的元素个数)System.out.println(list.size());// 5.根据索引删除集合中的某个元素值,会返回被删除元素值给我们System.out.println(list.remove(1));System.out.println(list);// 6.直接删除某个元素值,删除成功后返回true,反之falseSystem.out.println(list.remove("java"));System.out.println(list);// 7.修改某个索引位置处的数据,修改后会返回原来的值给我们list.set(1,"伟大的程序员");System.out.println(list);}}