Java Chapter IV 数学函数、字符和字符串
Chapter IV 数学函数、字符和字符串#
字符数据类型和操作#
char letter = 'A';
char numChar = '4';javaUnicode 和 ASCII#
Java 支持 Unicode。一个 16 位 Unicode 占两个字节,范围从 \u0000 到 \uFFFF
在 Java 中,可以使用 ACSII 和 Unicode,下面的语句等价:
char letter = 'A';
char letter = '\u0041'; // which is 'A' in Unicodejava两条语句都将 ‘A’ 赋予 char 类型变量 letter
特殊字符的转义#
想要打印 He said "Java is fun" ,应该使用如下的语句
System.out.println("He said \"Java is fun\"");java字符型数据和数值型数据之间的转换#
char 类型可以转换成任意一种数值类型,反之亦然。将整数转换成 char 类型数据时,只用到该数据的低十六位,其余部分都被忽略。
所以这里要提一点,要将一个浮点型转换成 char 型时,要先转换成 int 类型。
char ch = (int)65.20;
System.out.println(ch); // ch is character Ajava当一个 char 类型要被转换成数值类型时,这个字符的 Unicode 值就被转换成某个指定的数值类型。
int i = (int)'A'; // A is \u0041
System.out.println("i"); // which is 4 * 16 + 1 = 65;java这里转换结果其实适用于 int 类型(即位数放得下 char),不用强制类型转换成 int 也可以赋值,但是比如如果这里是一个 byte 类型,那么就必须强制类型转换。
byte b = 'a'; // which is WRONG!
byte b = (byte)'a'; // which is ACCEPTABLE.java所有数值操作符都可以用在 char 类型操作数上。char 类型操作数会被自动转换成和它数值计算的类型。
int i = '2' + '3'; // (int)'2' is 50, so that i is 101
int j = 2 + 'a'; // (int)'a' is 97, so that j is 99
System.out.println("Chapter " + '2'); // output: Chapter 2java字符的比较和测试#
两个字符可以使用关系操作符进行比较,如同比较两个数字一样。
比较的内容是两个字符的 Unicode 值。
程序中想要测试一个字符是不是大写字母、小写字母、数字,只需要与对应的区间比较即可,例如
if (ch >= 'a' && ch <= 'z')
System.out.println("ch is a lowercase letter");java对应的方法名有
Character.isDigit();
Character.isLetter();
Character.isLowerCase();
Character.isUpperCase();
Character.toLowerCase();
Character.toUpperCase();javaString 类型#
String 类型表示一串字符。
String message = "Welcome to Java";javaString 是 Java 库里预定义的类。
**String 不是基本类型,而是引用类型。**任何 Java 类都可以作为引用类型来声明一个引用变量。
这里 message 是一个引用变量,它引用一个内容为 Welcome to Java 的字符串对象。
下面是 String 类型的一些方法。
length(); // 返回字符串中字符数
charAt(index); // 返回特定位置字符
concat(s1); // 将字符串和字符串 s1 相连
toUpperCase(); // 返回一个全大写字母的字符串
toLowerCase();
trim(); // 返回一个去除了两边空白字符的字符串java注意字符串的下标从 0 开始。
假设一个字符串 s 包含使用空格分开的姓和名,可以使用下面的代码直接提取
int k = s.indexOf(' ');
String firstName = s.substring(0, k);
String lastName = s.substring(k+1); // 注意这里只传递一个参数是直接截取到结尾java字符串和数字之间的转换#
可以将数值型字符换转换为数值。使用 Integer.parseInt 方法
int intValue = Integer.parseInt(intString);java一个合理的 intString 样例是 “123”。
想要将字符串转换成其他类型,使用对应的方法:
String doubleString = "123.45";
double doubleValue = Integer.parseDouble(doubleString);java可以将数值转换为字符串,只需要简单的连接操作符:
String s = number + "";java格式化控制台输出#
许多情况下会希望以一种格式来显示数值。例如计算利息:
double amount = 12618.98;
double interestRate = 0.0013;
double interest = amount * interestRate;
System.out.println("Interest is " + interest);java这样打印出来的数值事实上是一个 6 位小数,但是对于货币,我们只希望保留到小数点后两位。
System.out.println("Interest is " + (int)(interest * 100) / 100.0);java这样可以吗?不可以,输出会是一个一位小数。正确的写法如下:
double amount = 12618.98;
double interestRate = 0.0013;
double interest = amount * interestRate;
System.out.println("Interest is %4.2f", interest);java没错!就是一个 格式限定符 的问题。。。