2020-10-22

it2025-09-17  1

String字符串

String被final修饰符修饰,所以它没有子类对象String类在java.lang包下,所以不用导包String虽然能和基本数据类型一样直接赋值,但是它不是基本数据类型它是引用类型。String一旦被创建,就不能改变。虽然有很多修改字符串的方法,但实际上都是创建了一个新的对象String类重写了toString()方法,所以返回的是该对象本身解码:将计算机读的懂的转换成我们读的懂得
String的构造方法

public String():空构造 public String(byte[] bytes):把字节数组转换成字符串 public String(byte[] bytes,int index,int length):把字节数组的一部分转换成字符串 public String(char[] value):把字符数组转换成字符串。 public String(char[] value,int index,int length):把字节数组的一部分转换成字符串 public String(String originl):把字符串常量值转成字符串

String常见面试题

== 和equals的区别是什么? ==解读: 对于基本数据类型和引用数据类型的作用是不同的: 基本类型:比较的是值是否相同 引用类型:比较的是地址值是否相同。

equals解读: equals本质上就是==,比较引用类型时,也是比较的地址值,只不过String和Integer等重写了equals方法,把它变成了值比较。

判断定义为String类型的s1和s2是否相等? String s1=”abc”; String s2=”abc”; System.out.println(s1==s2); //true System.out.println(s1.equals(s2)); //true

s1创建了几个对象? String s1=new String(“abc”); //创建了两个对象,一个在堆内存中,一个在常量池中。

判断定义为String类型的s1和s2是否相等? String s1=new String(“abc”); //记录的是堆内存中的地址值 String s2=”abc”; //记录的是常量池中的地址值 System.out.println(s1==s2);//false System.out.println(s1.equals(s2)); //true

4.判断定义为String类型的s1和s2是否相等?

String s1=”a”+”b”+”c”; // String s2=”abc”; System.out.println(s1==s2); //true, Java中常量优化机制 System.out.println(s1.equals(s2)); //true 判断定义为String类型的s1和s2是否相等? String s1=”ab”; String s2=”abc”; String s3=s1+”abc”; System.out.println(s1==s2); //false System.out.println(s1.equals(s2); //true

String的判断功能

boolean equals(Object obj):比较字符串的内容是否相同,区分大小写 boolean equalsIgnoreCase(String str):比较字符串的内容是否相同,忽略大小写 boolean contains(String str):判断大字符串中是否包含小字符串 boolean startsWith(String str):判断大字符串是否包含小字符串 boolean endsWith(String str):判断字符串是否以某个指定的字符结尾 boolean isEmpty():判断字符串是否为空

String的获取功能

int length():获取字符串长度。 char charAt(int index):获取指定索引位置的字符 int indexOf(int ch):返回指定字符在此字符串中第一次出现处的索引 int indexOf(String str):返回指定字符串在此字符串中出现的索引 int indexOf(int ch,int fromIndex):返回指定字符在此字符串中从指定位置后第一次出现的位置。 int indexOf(String str,int fromIndex):返回指定字符串在此字符串中从指定位置后第一次出现的索引 。 String substring(int start):从指定位置开始截取字符串开始到末尾。 String substring(int start,int end):从指定位置开始到指定位置结束截取字符串

字符串遍历
String s="HelloString"; for(i=0;i<s.length;i++)//通过for循环获取到字符串中每个字符的索引 { char a=s.charAt(i); System.out.println(a) //System.out.println(s.charAt(i)); }
String的转换功能

byte[] getBytes():把字符串转换成字节数组 char[] toCharArray():把字符串转成字符数组 static String valueOf(char[] chs):把字节数组转换成字符串 static String valueOf(int i):把int类型的数据转换成字符串 注意:String类的valueOf(方法可以把任意类型的数据转换成字符串

String toLowerCase():把字符串转成小写(了解) String toUpperCase():把字符串转成大写 String concat(String str):把字符串拼接

把数组转换成字符串
int[] arr={1,2,3}; String s="["; for(int i=0;i<arr.length;i++) { if(i==arr.length-1) { s=s+arr[i]+"]" } else { s=s+arr[i]+"," } }
String的其他功能

String的替换功能:

String replace(char old,char new);

String replace(String old,String new);

String的去除字符串两空格:

String trim();

String的按字典顺序比较两个字符串:

int compareTo(String str); int compareToIgnoreCase(String str);

String反转

分析: 1、通过键盘录入获取字符串Scanner 2、将字符串转换成字符数组 3、倒着遍历字符数组,再次拼接字符串 4、打印

Scanner sc=new Scanner(System.in); //创建键盘录入对象 System.out.println("请输入字符串:"); String s=sc.nextLine(); //将键盘录入存储到s中 char[] arr=s.toCarArray(); //将字符串转换为字符数组 String s=""; for(int i=arr.length-1;i>=0;i--){ s=s+arr[i]; } System.out.println(s);
在大串中查找小串

需求:统计大串中小串出现的次数。

//定义大串 String max="HelloString String is a niub String"; //定义小串 String min="String"; //定义计数器变量 int count=0; //定义索引 int index=0; //定义循环,判断小串是否在大串中出现 while((dex==max.indexOf(min))!-1){ count++ max=max.substring(index+min.length()); } System.out.println(count);
最新回复(0)