review09
Posted liaoxiaolao
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了review09相关的知识,希望对你有一定的参考价值。
String类在java.lang包中,由于java.lang包中的类被默认引入,所以可以直接使用String类。String对象的创建可以直接使用带字符串参数的构造方法
String s = new String("we are students");
也可以用一个已创建的字符串创建另一个字符串,如:
String tom = new String(s);
这里介绍将字符数组和字符串相互转换的两个方法。
将字符数组转换为字符串
char a[] = {‘J‘,‘a‘,‘v‘,‘a‘};
String s = new String(a);
实际上相当于
String s = new String("Java");
将字符串转换为字符数组
String s = "中华人民共和国今天成立了!";
char c[] = s.toCharArray();
展示如下:
public class Test02 { public static void main(String[] args) { // TODO Auto-generated method stub String s = "中华人民共和国今天成立了!"; char c[] = s.toCharArray(); for(int i = 0; i < c.length; i++) { System.out.print(c[i]); } } }
运行结果如下:
String的构造方法还会有String(char a[], int startIndex, int count)提取字符数组a中的一部分字符创建一个字符串对象,参数startIndex和count分别制定在a中提取字符的起始位置和从该位置开始截取的字符个数,如
char a[] = {‘1‘,‘2‘,‘3‘,‘4‘,‘5‘,‘6‘};
String s = new String(a,2,4);
相当于String s = new String("3456");
字符串常量是对象,因此可以把它作为字符串常量的引用赋值给一个字符串变量,例如
String s1, s2; s1 = "how are you"; s2 = "how are you"; System.out.println(s1==s2);
输出的结果是true.
s1,s2具有相同的引用,因而具有相同的实体。
因为s1本身就是字符串常量对象,所以s1.toString()的输出是字符串本身。
String类的常用方法
获取字符串长度的方法是length(),比较字符串实体相同的方法是equals(String s),忽略大小写时可以用equalsIgnoreCase(String s).
下面用代码说明equals方法和“==”的区别
public class Test03 { public static void main(String[] args) { // TODO Auto-generated method stub String s1, s2; s1 = new String("天道酬勤"); s2 = new String("天道酬勤"); System.out.println(s1.equals(s2)); System.out.println(s1 == s2); String s3, s4; s3 = "勇者无敌"; s4 = "勇者无敌"; System.out.println(s3.equals(s4)); System.out.println(s3 == s4); } }
运行结果如下所示:
public boolean startsWith(String s)、public boolean endsWith(String s)方法
String tom = "天气预报,阴有小雨", jerry = "比赛结果,中国足球常胜";
tom.startWith("天气")为true,jerry.endsWith("比赛")为true.
public int compareTo(String s),将按字典序与参数s指定的字符串进行比较大小,如果当前字符串与s相同,该方法返回0,如果当前字符串对象大于s,该方法返回正值,否则返回负值。
如String str = "abcde";
str.compareTo("boy")小于0。
sort()方法在字符串数组中的用法
sort()方法是java.util.Collections类中的,下面介绍sort()方法的使用。
public class Test04 { public static void main(String[] args) { // TODO Auto-generated method stub int []b = {2,3,1,6,4,9,8}; System.out.println("使用SortString类的方法按字典序排列数组b:"); Arrays.sort(b); for(int i : b) { System.out.print(" " + i); } } }
运行结果如下所示:
当然我们也可以改变排序方式,那就要重写sort方法。
import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; public class Test05 { public static void main(String[] args) { // TODO Auto-generated method stub List<Integer> list = new ArrayList<Integer>(); list.add(9); list.add(10); list.add(8); list.add(7); Collections.sort(list, new Comparator<Integer>(){ @Override public int compare(Integer o1, Integer o2) { // TODO Auto-generated method stub if(o1 > o2) return -1; else if(o1 < o2) return 1; else return 0; } }); for(int a : list) { System.out.print(" " + a); } } }
结果如下:
我们也可以自己编写一个类,如SortString,在类中实现sort()方法,大小的比较用方法compareTo(String str)来实现。
public boolean contains(String s)方法用来判断当前字符串对象是否含有参数指定的字符串s。
public class Test01 { public static void main(String[] args) { // TODO Auto-generated method stub String path = "c:\\book\\javabook\\java Programmer.doc"; int index = path.indexOf("\\"); System.out.println("第一个index的值是:" + index); index = path.indexOf("\\", index+1); //记住indexOf就是从index索引下标开始的,包括index,这里如果index+1改为index,则index的结果仍然是2 System.out.println("第二个index的值是:" + index); String sub = path.substring(index); System.out.println(sub); index = path.lastIndexOf("\\"); sub = path.substring(index + 1); System.out.println(sub); System.out.println(sub.contains("Programmer")); } }
运行结果如下:
以上是关于review09的主要内容,如果未能解决你的问题,请参考以下文章