字符串、枚举、泛型)"/>
Java学习7(字符串、枚举、泛型)
一、字符串
1.字符串的创建方式:
String str = "JavaStudy"; 或 String str = new String("JavaStudy");
String 创建的字符串存储在公共池中,使用关键字new创建的字符串对象在堆上。
注:String类不可改变,一旦创建值无法改变。
2.字符串长度的获取:
str.length();
3.字符串的连接:
使用“+”操作连接字符串; str1.concat(srt2);
编程练习:
public class ConnectStr{public static void main(String[] args){int booktime = 4;float pratice = 2.5f;String s1 = new String("Hello");String s2 = new String("world!");String s = s1+""+s2; //使用+号可以连接字符串String s3 = "We are students.";String s4 = " java class ";System.out.println(s);System.out.println("我每天花费"+booktime+"小时看书;"+pratice+"小时上机>练习。"); //使用+号将不同类型的变量与字符串拼接起来System.out.println("字符串s1的长度是:"+s1.length());System.out.println("字符串s3中字母'a'的位置是"+s3.indexOf("a")+"。");//>使用函数indexOf查找字符串s3中某字符的位置System.out.println("字符串s3中字母\'s\'最后出现的位置是"+s3.lastIndexOf("s")+"。");System.out.println("字符串s1中索引位置是2的元素是:"+s2.charAt(2)+"。");System.out.println(s3.substring(5));System.out.println(s3.substring(0,5));System.out.println("字符串s4的原始长度为"+s4.length());System.out.println("字符串s4去除首位空格后的长度为"+s4.trim().length());System.out.println();System.out.println("字符替换:");System.out.println(s2);System.out.println(s2.replace("o","O"));System.out.println("字符串s1是以He开头的吗?"+s1.startsWith("He"));System.out.println("字符串s1是以d!结尾的吗?"+s1.endsWith("d!"));System.out.println("字符串s2是以He开头的吗?"+s2.startsWith("He"));System.out.println("字符串s2是以d!结尾的吗?"+s2.endsWith("d!"));}
}
运行结果:
Helloworld!
我每天花费4小时看书;2.5小时上机练习。
字符串s1的长度是:5
字符串s3中字母'a'的位置是3。
字符串s3中字母's'最后出现的位置是14。
字符串s1中索引位置是2的元素是:r。
e students.
We ar
字符串s4的原始长度为18
字符串s4去除首位空格后的长度为11字符替换:
world!
wOrld!
字符串s1是以He开头的吗?true
字符串s1是以d!结尾的吗?false
字符串s2是以He开头的吗?false
字符串s2是以d!结尾的吗?true
二、枚举类型
Java 的枚举类型用来定义一组常量,使用关键字enum定义,各常量采用逗号分割。
enum 定义的枚举类默认继承了 java.lang.Enum 类,并实现了 java.lang.Seriablizable 和java.lang.Comparable 两个接口。values(), ordinal() 和 valueOf() 方法位于 java.lang.Enum 类中:
- values() 返回枚举类中所有的值。
- ordinal()方法可以找到每个枚举常量的索引,就像数组索引一样。
- valueOf()方法返回指定字符串值的枚举常量。
- compareTo()方法用于比较两个枚举对象在定义时的顺序。正值表示方法的参数在调用该方法的枚举对象之前;0表示方法的参数与调用该方法的枚举对象位置相同;负值表示方法的参数在调用该方法的枚举对象之后。
/**枚举类型的使用方法*/
public class EnumTest{enum Constants{ //定义一个枚举类NAME("韩丽"),AXE("女"),AGE("23"),PRO("程序员");private String description;private int i = 4;private Constants(){ //定义枚举类Constants的默认构造方法}private Constants(String description){ //定义枚举类Constants的带字符类型参的构造方法this.description = description;}private Constants(int i){ //声明参数为int型的构造方法this.i+=i;}public String getDescription(){ //获取description的值return description;}public int getI(){ //获取i的值return i;}}public static void main(String[] args){for(int i=0;i<Constants.values().length;i++){System.out.println(Constants.values()[i]+"是"+Constants.values()[i].getDescription()); //value()方法以数组形式返回被调用枚举变量System.out.println(Constants.values()[1]+"与"+Constants.values()[i]+"的比较结果为:"+Constants.values()[1]pareTo(Constants.values()[i])); //compare()方法用于比较两个枚举类型变量的位>置先后}System.out.println(Constants.valueOf("AXE")+"调用getI()方法的结果为:"+Constants.valueOf("AXE").getI()); //valueOf()方法用于将普通字符串转换为枚举实例}
}
程序运行结果:
NAME是韩丽
AXE与NAME的比较结果为:1
AXE是女
AXE与AXE的比较结果为:0
AGE是23
AXE与AGE的比较结果为:-1
PRO是程序员
AXE与PRO的比较结果为:-2
AXE调用getI()方法的结果为:4
三、泛型
编程:利用泛型方法实现对多种不同类型数组的遍历功能。
public class TTest{// 泛型方法 printArray public static <E> void printArray(E[] inputArray){// 输出数组元素for (E element : inputArray){ //foreach结构遍历E泛型数组 System.out.printf("%s ",element);}System.out.println();}public static void main(String args[]){// 创建不同类型数组: Integer, Double 和 CharacterInteger[] intArray = { 1, 2, 3, 4, 5 }; //创建整型类型数组Double[] doubleArray = { 1.1, 2.2, 3.3, 4.4 }; //创建精度类型数组Character[] charArray = { 'H', 'E', 'L', 'L', 'O' }; //创建字符类型数组System.out.println("整型数组元素为:");printArray(intArray); // 传递一个整型数组System.out.println("\n双精度型数组元素为:");printArray(doubleArray); // 传递一个双精度型数组System.out.println("\n字符型数组元素为:");printArray(charArray); // 传递一个字符型数组}
}
程序运行结果:
整型数组元素为:
1 2 3 4 5 双精度型数组元素为:
1.1 2.2 3.3 4.4 字符型数组元素为:
H E L L O
更多推荐
Java学习7(字符串、枚举、泛型)
发布评论