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")转换即可
如果不是字符型的就会抛出一个运行时错误。

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

被折叠的 条评论
为什么被折叠?



