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].compareTo(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 和 Character
        Integer[] 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 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值