Java笔记4

1、Java中的枚举

语法格式:enum 枚举名{枚举值表};

用枚举名+.进行访问

1
2
3
4
5
6
7
8
9
10
11
12
13
14
enum MyColor{红色,绿色,蓝色};

public class Enum1 {

public static void main(String[] args) {
MyColor c1 = MyColor.红色;
MyColor c2 = MyColor.绿色;
MyColor c3 = MyColor.蓝色;
System.out.println(c1);
System.out.println(c2);
System.out.println(c3);
}

}

1.2 在switch语句中用枚举

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
enum MyColor{红色,绿色,蓝色};

public class Enum1 {

public static void main(String[] args) {
MyColor c1 = MyColor.红色;
MyColor c2 = MyColor.绿色;
MyColor c3 = MyColor.蓝色;
switch (c1) {
case 红色:
System.out.println("我是红色");
break;
case 绿色:
System.out.println("我是绿色");
break;
case 蓝色:
System.out.println("我是蓝色");
break;
}
}

}

2、枚举类和枚举关键字
2.1

Values方法:返回枚举值组成的数组

1
2
3
4
5
6
7
8
9
10
11
12
enum MyColor{红色,绿色,蓝色};

public class Enum1 {

public static void main(String[] args) {
MyColor[] allColor = MyColor.values();
for(MyColor aColor:allColor) {
System.out.println(aColor);
}
}

}

2.2、枚举类:Enum

1
2
3
4
5
6
7
8
9
10
11
12
enum MyColor{红色,绿色,蓝色};

public class Enum1 {

public static void main(String[] args) {
MyColor[] allColor = MyColor.values();
for(MyColor aColor:allColor) {
System.out.println(aColor.name()+"-->"+aColor.ordinal());
}
}

}

另外枚举关键字编号默认从0开始
Scanner类

它提供了输入数据的方法、包含在被称为“实用类”的java.util包中;

在使用前需要创建一个Scanner对象;

声明一个名为in的Scanner变量,并新建一个Scanner对象以便从System.in中获取输入;

Scanner in = new Scanner(System.in);

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import java.util.Scanner;

public class Test {

public static void main(String[] args) {
String line;
Scanner in = new Scanner(System.in);

System.out.print("Type something:");
line = in.nextLine();
System.out.println("You said:"+line);

}
}

另外next和nextline是有区别的,前者读到空白符就结束读取,后者读到回车就结束读取

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import java.util.Scanner;

public class Test {

public static void main(String[] args) {
String line;
Scanner in = new Scanner(System.in);

System.out.print("Type something(nextline):");
line = in.nextLine();
System.out.println("You said:"+line);

System.out.print("Type something(next):");
line = in.next();
System.out.println("You said:"+line);
}
}

具体的可以去api查询
1、字符串的遍历

在Java中,字符串提供了提取字符的方法charAt,这个方法会返回一个char,因此我们可以利用这一点来实现字符串的遍历;

1
2
3
4
5
6
7
8
9
public class Test {
public static void main(String[] args) {
String str ="abcdefg";
for(int i=0;i<str.length();i++) {
char letter = str.charAt(i);
System.out.println(letter);
}
}
}

2、字符串的反转

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public class Test {
public static void main(String[] args) {
String str ="abcdefg";
String str2 = reverse(str);
printArr(str);
printArr(str2);
}
private static void printArr(String str) {
for(int i=0;i<str.length();i++) {
char letter = str.charAt(i);
System.out.print(letter);
}
System.out.println("");
}
public static String reverse(String s) {
String a ="";
for (int i = s.length() - 1;i>=0;i--) {
a= a + s.charAt(i);
}
return a;
}
}

那么有一个问题,定义好的字符串是否能够修改

答案是否定的

我们知道字符串提供了toUpperCase和tolowerCase来转换大小写的方法,但并不意味着字符串可以修改;

但是可以使用其他方法来间接改变,比如replace进行替换

1
2
3
4
5
6
7
public class Test {
public static void main(String[] args) {
String text = "aaa";
text = text.replace("aaa", "bbb");
System.out.println(text);
}
}