复习要点
1.字符串
1.1String类
// String类代表一组字符串常量,对其所有修改都是在原有基础上进行的
// String是引用数据类型,但与一般对象不同,字符串保存在字符串常量池中
public class StringDemo{
public static void main(String[] args) {
String str = "hello";
}
}
1.2字符串常用方法
equals 比较字符串是否一样
public class Demo1 {
public static void main(String[] args) {
String str1 = "hello";
String str2 = "hello";
System.out.println(str1 == str2);// true,因为str1和str2都指向常量池
System.out.println(str1.equals(str2));// true
}
}
public class Demo2 {
public static void main(String[] args) {
String str1 = "hello";
String str2 = new String("hello");
System.out.println(str1 == str2);// false,因为str1指向常量池,str2指向堆
System.out.println(str1.equals(str2));// true
}
}
substring 截取字符串
public class Demo {
public static void main(String[] args) {
String str1 = "helloworld";
System.out.println(str1.substring(2,4));// ll
// 提示:substring方法是截取后返回一个新字符串,并没有改变str1的值
System.out.println(str1);//helloworld
// 除非重新赋值
str1 = str1.substring(2,4);
System.out.println(str1);// ll
}
}
public class Demo {
public static void main(String[] args) {
String str1 = "helloworld";
System.out.println(str1.substring(2));// lloworld,只写一个参数,默认截取到最后
}
}
indexOf/lastIndexOf 查找字符串第一次/最后一次出现的索引值
public class Demo {
public static void main(String[] args) {
String str1 = "helloworld";
System.out.println(str1.indexOf("o")); // 4
System.out.println(str1.lastIndexOf("o")); // 6
}
}
split 将字符串分割成一个数组
public class Demo {
public static void main(String[] args) {
String str1 = "黑桃;红桃;方块;草花";
String str[] = str1.split(";"); // str长度为4 {黑桃,红桃,方块,草花}
}
}
charAt 返回指定索引处的字符
public class Demo {
public static void main(String[] args) {
String str1 = "helloworld";
System.out.println(str.charAt(1)); // e
}
}
startsWith/endsWith 是否以某子串开始/结束
public class Demo {
public static void main(String[] args) {
String str1 = "今天是个好日子";
System.out.println(str1.startsWith("今天"));// true
System.out.println(str1.startsWith("后天"));// false
System.out.println(str1.endsWith("日子"));// true
System.out.println(str1.endsWith("月子"));// false
}
}
经典练习题
1.在一个字符串中查找另一个字符串出现的次数(查单词)
package com.neuedu.chapter5_0313;
public class Practice {
public static int findWord(String father, String son) {
int index =father.indexOf(son);
int count=0;
while(index!=-1) {
count++;
father=father.substring(index+son.length());
index=father.indexOf(son);
}
return count;
}
public static void main(String[] args) {
System.out.println(findWord("ddsdsadsdsdsdsaqwsdadsasds","ds"));
}
}
2.输出1,2,2,3,4,5能组成的所有6位数组合
package com.neuedu.chapter5_0313;
public class Practice2 {
public static boolean getNum(int num) {
String str[] = { "1", "2", "2", "3", "4", "5" };
for (String s : str) {
int index = (num + "").indexOf(s);
if (index == -1) {
return false;
}
}
return true;
}
public static void main(String[] args) {
for (int i = 122345; i <= 543221; i++) {
if (getNum(i) == true) {
System.out.println(i);
}
}
}
}
3.字符串与包装类之间的转换
int n = 10;
Integer in = new Integer(100);
Integer in1 = new Integer(n);
int m = in.intValue();