|
|
|
@ -27,7 +27,7 @@
|
|
|
|
|
|
|
|
|
|
实例:
|
|
|
|
|
|
|
|
|
|
```java
|
|
|
|
|
```java {.line-numbers}
|
|
|
|
|
Math.ceil(2.1) returns 3.0
|
|
|
|
|
Math.ceil(2.0) returns 2.0
|
|
|
|
|
Math.ceil(-2.0) returns –2.0
|
|
|
|
@ -57,7 +57,7 @@ Math.round(-2.6) returns -3
|
|
|
|
|
|
|
|
|
|
实例:
|
|
|
|
|
|
|
|
|
|
```java
|
|
|
|
|
```java {.line-numbers}
|
|
|
|
|
Math.max(2, 3) returns 3
|
|
|
|
|
Math.max(2.5, 3) returns 3.0
|
|
|
|
|
Math.min(2.5, 3.6) returns 2.5
|
|
|
|
@ -78,14 +78,14 @@ char类型是有序的(类似整形),整形可以使用的运算符都可
|
|
|
|
|
|
|
|
|
|
### 2.1. char和整形的转换
|
|
|
|
|
|
|
|
|
|
```java
|
|
|
|
|
```java {.line-numbers}
|
|
|
|
|
int i = 'a'; // Same as int i = (int)'a';
|
|
|
|
|
char c = 97; // Same as char c = (char)97;
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 2.2. char的比较
|
|
|
|
|
|
|
|
|
|
```java
|
|
|
|
|
```java {.line-numbers}
|
|
|
|
|
if (ch >= 'A' && ch <= 'Z')
|
|
|
|
|
System.out.println(ch + " is an uppercase letter");
|
|
|
|
|
else if (ch >= 'a' && ch <= 'z')
|
|
|
|
@ -104,7 +104,7 @@ char c = 97; // Same as char c = (char)97;
|
|
|
|
|
|
|
|
|
|
字符串与C完全不一样,Java中的字符串的类型是 String 。注意,以前在Java中出现的类型都是小写开头的,这是第一个大写开头的,因此这个是一个类的类型,而不是普通类型。前面讲到过,类是抽象描述(类似结构体指针),如果来实例化(成为可操作的对象)需要使用new 操作生成一个对象。这里我们看看字符串是如何生成的。
|
|
|
|
|
|
|
|
|
|
```java
|
|
|
|
|
```java {.line-numbers}
|
|
|
|
|
public class Main {
|
|
|
|
|
public static void main(String[] args) {
|
|
|
|
|
String s1 = new String("Hello");
|
|
|
|
@ -114,7 +114,7 @@ public class Main {
|
|
|
|
|
```
|
|
|
|
|
第三行代码是生成一个字符串对象,第四行是打印这个字符串。等等,这里和Hello world程序好像有所不同?对的,标准的对象生成应该是按照第三行的方式生成,不过因为String在程序中使用得太频繁了,因此如果写入字符串的字面量,编译器会自动构造一个对象,下面的代码也是正确的:
|
|
|
|
|
|
|
|
|
|
```java
|
|
|
|
|
```java {.line-numbers}
|
|
|
|
|
public class Main {
|
|
|
|
|
public static void main(String[] args) {
|
|
|
|
|
String s1 = "Hello";
|
|
|
|
@ -124,7 +124,7 @@ public class Main {
|
|
|
|
|
```
|
|
|
|
|
或者直接使用字面量作为参数:
|
|
|
|
|
|
|
|
|
|
```java
|
|
|
|
|
```java {.line-numbers}
|
|
|
|
|
public class Main {
|
|
|
|
|
public static void main(String[] args) {
|
|
|
|
|
System.out.println("Hello");
|
|
|
|
@ -141,7 +141,7 @@ public class Main {
|
|
|
|
|
|
|
|
|
|
上述这些函数是在数据库对象上面进行调用的,例如:
|
|
|
|
|
|
|
|
|
|
```java
|
|
|
|
|
```java {.line-numbers}
|
|
|
|
|
String sA = "Hello world!";
|
|
|
|
|
int len = sA.length();
|
|
|
|
|
char c = sA.charAt(1);
|
|
|
|
@ -154,7 +154,7 @@ public class Main {
|
|
|
|
|
|
|
|
|
|
字符串连接可以使用算术运算符(+),也可以使用对象函数:
|
|
|
|
|
|
|
|
|
|
```java
|
|
|
|
|
```java {.line-numbers}
|
|
|
|
|
String sA = "Hello";
|
|
|
|
|
String sB = "World";
|
|
|
|
|
System.out.println(sA.concat(" ").concat(sB).concat("!"));
|
|
|
|
@ -164,7 +164,7 @@ public class Main {
|
|
|
|
|
|
|
|
|
|
另外,字符串可以和数值类型的变量或者是字面量进行连接:
|
|
|
|
|
|
|
|
|
|
```java
|
|
|
|
|
```java {.line-numbers}
|
|
|
|
|
public class Main {
|
|
|
|
|
public static void main(String[] args) {
|
|
|
|
|
String sA = "Hello";
|
|
|
|
@ -178,7 +178,7 @@ public class Main {
|
|
|
|
|
|
|
|
|
|
前面学习了如何从控制台读取数值类型的值,这里我们看看如何读取字符串/字符。
|
|
|
|
|
|
|
|
|
|
```java
|
|
|
|
|
```java {.line-numbers}
|
|
|
|
|
import java.util.Scanner;
|
|
|
|
|
|
|
|
|
|
public class Main {
|
|
|
|
@ -225,7 +225,7 @@ next() 是以空格区分字符串的,如果我们需要读取一段字符串
|
|
|
|
|
|
|
|
|
|
这时我们需要使用到相应数值类型的类类型(包装类型),而不是简单的类型了。关于包装类型我们后面会讲到,这里先了解一下。
|
|
|
|
|
|
|
|
|
|
```java
|
|
|
|
|
```java {.line-numbers}
|
|
|
|
|
public class Main {
|
|
|
|
|
public static void main(String[] args) {
|
|
|
|
|
int a = Integer.parseInt("1");
|
|
|
|
@ -245,14 +245,14 @@ public class Main {
|
|
|
|
|
|
|
|
|
|
有很多方式,最简单的是加上一个空字符串(没有内容的字符串),例如:
|
|
|
|
|
|
|
|
|
|
```java
|
|
|
|
|
```java {.line-numbers}
|
|
|
|
|
String sA = 100 + "";
|
|
|
|
|
```
|
|
|
|
|
#### 3.2.8. 格式化字符串
|
|
|
|
|
|
|
|
|
|
格式化字符串如同C语言的printf方法,甚至连占位符和格式方法都一模一样。如果要输出一个字符串,可以使用 System.out.printf 方法。
|
|
|
|
|
|
|
|
|
|
```java
|
|
|
|
|
```java {.line-numbers}
|
|
|
|
|
public class Main {
|
|
|
|
|
public static void main(String[] args) {
|
|
|
|
|
System.out.printf("Hello, my name is %s, and %d years old.\n", "Danny", 20);
|
|
|
|
@ -261,7 +261,7 @@ public class Main {
|
|
|
|
|
```
|
|
|
|
|
当然,如果不想输出字符串,而需要对中间的结果进行格式化应该如何?
|
|
|
|
|
|
|
|
|
|
```java
|
|
|
|
|
```java {.line-numbers}
|
|
|
|
|
public class Main {
|
|
|
|
|
public static void main(String[] args) {
|
|
|
|
|
String a = String.format("Hello, my name is %s, and %d years old.\n", "Danny", 20);
|
|
|
|
|