java基础(六)字符和字符串

本文介绍了Java中的字符和字符串基础知识,包括字符数字类型的操作、特殊字符的转义序列、字符与数值之间的转换以及String类型的特性。讲解了如何比较字符、创建和操作String对象,以及从字符串中提取字符的方法。

1.1 字符数字类型和操作

1.1.1 介绍

字符数字类型用于表示单个字符。除了处理数值之外,Java还可以处理字符,字符数据类型char用于表示单个字符。字符型字面值用单引号括住。char letter = ‘A’;字符串字面值必须括在双引号中。而字符字面值是括在单引号中的单个字符。因此“A”是一个字符串,而‘A’是一个字符

1.1.2 特殊字符的转义序列

转义字符(/)

例如:System.out.println("He said \"Java is fun\""); 转义之后编译器就不会认为那个字符是结束标志了。

\r:回车符   \n:换行符

1.1.3 字符型数据与数值型数据之间的转换

char型数据可以转换成任意一种数值类型,反之亦然。将整数转换成char型数据时,只用到该数据的低十六位,其余部分都被忽略。

例如:

    	int i = (int)'A';
    	System.out.println(i);//i为65(A的ASCII码值)
    	char ch = (char)65.25;//先将浮点值转换成int型,然后将这个整型值转换为char型
    	System.out.println(ch);//ch为A

 

1.1.4 字符的比较和测试

两个字符可以使用关系操作符进行比较,如同比较两个数字一样,是通过比较字符的Unicode实现的。

下面是利用通过比较字符的Unicode值来判断字符的便捷形式。

    	Character.isDigit('a');//如果指定的字符是一个数字,返回true
    	Character.isLetter('a');//如果指定的字符是一个字母,返回true
    	Character.isLetterOrDigit('a');//如果指定的字符是一个数字或字母,返回true
    	Character.isLowerCase('a');//如果指定的字符是一个小写字母,返回true
    	Character.isUpperCase('a');//如果指定的字符是一个大写字母,返回true
    	Character.isLowerCase('a');//返回指定字符的小写形式
    	Character.toUpperCase('a');//返回指定字符的大写形式

 

1.2 String类型

1.2.1 介绍String类型

字符串是一个字符序列。char类型只表示一个字符,为了表示一串字符,可以使用String(字符串)的数据类型。

例如:String message = “welcome to Java”

String不是基本类型而是引用类型(后续讲解)。任何Java类都可以作为引用类型来声明一个变量(引用变量),这里message是一个引用变量,引用一个内容为welcome to Java的字符串对象。

1.2.2 String对象的简单方法

 

    public static void main(String[] args) {
    	String message = "welcome to Java";
    	System.out.println(message.length());//返回字符串中的字符数
    	System.out.println("message length".length());//可以直接这么调用
    	System.out.println(message.charAt(1));//返回字符串中指定位置的字符(下标从0数起)
    	System.out.println(message.concat(" love"));//返回字符串和方法中的字符串连接
    	System.out.println(message.toUpperCase());//返回字符串中所有字母大写
    	System.out.println(message.toLowerCase());//返回字符串中所有字母小写
    	System.out.println(message.trim());//返回字符串中去掉两边空白字符
    	
    }

控制台输出结果:

String是Java中的对象(而非数据类型)上面方法只能从特定的字符串实例来调用,由于这个原因,这些方法被称为实例方法,非实例方法被称为静态方法。静态方法可以不使用对象来调用(例如Math中的所有方法)

其中连接字符串的语句 message.concat(" love") 等价于 message + love

1.2.3 从字符串中获取字符

(1)message.equals(s1):如果该字符串内容等于字符串s1,返回true(区别于==,==只能检测两个字符串是否指向同一个对象即内存地址,不会告诉你字符串内容是否相同)

(2)message.equalsIgnoreCase(s1):如果字符串内容不区分大小写的情况下等于字符串s1,返回true。

(3)message.compareTo(s1)返回一个大于0、等于0、小于0的整数。表明该字符串是否大于、等于或者小于s1(按字典顺序)

(4)message.compareToIgnoreCase(s1) 和compareTo一样,除了比较是不区分大小写的外

(5)message.startsWith("wel") 如果字符串以特定的前缀开始,返回true

(6)message.endsWith("ava")如果字符串以特定的后缀结束,返回true

(7)message.contains("to") 如果是该字符串的子字符串,返回true

(8)message.substring(5) 返回该字符串的子串,从指定位置5到字符串的结尾

         message.substring(0, 11)返回字符串的一部分 从0到11

(9)message.indexOf("ch") 返回字符串中出现的第一个ch下标,如果没有匹配的,返回-1

         message.indexOf("va",5) 返回字符串中fromIndex之后出现的第一个ch下标。如果没有匹配的,返回-1

(10)message.lastIndexOf("we")返回字符串中出现的最后一个字符串的下标,如果没有匹配的,返回-1

         message.lastIndexOf("we",5)返回字符串中5之前出现的最后一个字符串的下标,如果没有匹配的,返回-1

1.2.4 字符串和数字间的转换

可以将数值型字符串(例如:"123456")转换为数值,直接使用Integer.parseInt("123456")转换即可

如果不是字符型的就会抛出一个运行时错误。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值