public class Demo01 { public static void main(String[] args) { String name="hello";//“hello“常量存储在字符串池中 name="更生";//并没有去改变hello的值,而是在字符串池重新开辟了一片空间“更生”,然后name从指向hello变成指向更生 String name2="更生";//这里是共享的 System.out.println(name==name2);//true //字符串的另一种创建方式 String str=new String("java");//会指向堆里的java对象,事实上两个会合并到一个,所以用这种方式会浪费空间 String str2 = new String("java"); System.out.println(str==str2);//两个地址是不一样的 System.out.println(str.equals(str2));//这时候比的是数据 System.out.println("======================字符串方法的使用1==========================="); //字符串方法的使用 //length();返回字符串的长度 //charAt(int index):返回某个位置的字符 //contains(String str):判断是否包含某个字符串 String content="java ";//空格也算一个字符 System.out.println(content.length()); System.out.println(content.charAt(0));//打印第一个字符 System.out.println(content.charAt(content.length()-1));//打印最后一个字符 System.out.println(content.charAt(content.length()-2));//打印倒数第二个字符 System.out.println(content.contains("java")); System.out.println(content.contains("php")); System.out.println(content.contains("jv"));//被隔开的字符串是无法检测到的 System.out.println(content.contains("j"+"v"));//即使这样写也是不行的 } }
输出结果为
5 j a true false false false
- 空格算字符
- 打印倒数第几个字符时,可通过length()-a的思路实现,但要注意序列是从0开始的
- 被隔开的字符串是无法检测成功的,即使中间用“+”分隔也不行
import java.lang.reflect.Array; import java.util.Arrays; public class Demo01 { public static void main(String[] args) { String name="hello";//“hello“常量存储在字符串池中 name="更生";//并没有去改变hello的值,而是在字符串池重新开辟了一片空间“更生”,然后name从指向hello变成指向更生 String name2="更生";//这里是共享的 System.out.println(name==name2);//true //字符串的另一种创建方式 String str=new String("java");//会指向堆里的java对象,事实上两个会合并到一个,所以用这种方式会浪费空间 String str2 = new String("java"); System.out.println(str==str2);//两个地址是不一样的 System.out.println(str.equals(str2));//这时候比的是数据 System.out.println("======================字符串方法的使用1==========================="); //字符串方法的使用 //1.length();返回字符串的长度 //2.charAt(int index):返回某个位置的字符 //3.contains(String str):判断是否包含某个字符串 String content="java 是世界上最好的语言,java真香";//空格也算一个字符 System.out.println(content.length()); System.out.println(content.charAt(0));//打印第一个字符 System.out.println(content.charAt(content.length()-1));//打印最后一个字符 System.out.println(content.charAt(content.length()-2));//打印倒数第二个字符 System.out.println(content.contains("java")); System.out.println(content.contains("php")); System.out.println(content.contains("jv"));//被隔开的字符串是无法检测到的 System.out.println(content.contains("j"+"v"));//即使这样写也是不行的 System.out.println("======================字符串方法的使用2==========================="); //字符串的方法使用 //4.toCharArray();返回字符串对应的数组 //5.indexOf();返回子字符串首次出现的位置 //6.lastIndexOf();返回字符串最后一次出现的位置 System.out.println(content); System.out.println(content.toCharArray());//Q:输出为什么和上面是一样的 System.out.println(Arrays.toString(content.toCharArray()));//打印出来的是数组本身 System.out.println(content.indexOf("java"));//只会找第一个出现的 System.out.println(content.indexOf("java",4));//从第四个字符开始找java,输出是15,因为是从0开始计的 System.out.println(content.lastIndexOf("java"));//找的是最后一个,但还是从0开始计来打印出他的序数 } }
在打印时序数始终是从0开始计数的