java String可以用作switch条件吗
时间: 2024-01-16 16:03:52 浏览: 30
是的,自 Java SE 7 开始,Java中的字符串可以作为switch语句的条件。在使用字符串作为条件时,每个case语句必须是一个字符串常量表达式。例如:
```
String str = "hello";
switch(str) {
case "hello":
System.out.println("Hello!");
break;
case "world":
System.out.println("World!");
break;
default:
System.out.println("Other!");
break;
}
```
注意,使用字符串作为switch语句的条件时,Java编译器会自动生成一个哈希表来实现快速查找,因此相对于使用if-else语句,使用switch语句可以提高代码的执行效率。
相关问题
java里面的枚举可以使用策略者模式吗?
Java 中的枚举可以用作策略模式中的策略类。策略模式的目的是定义一系列算法,将每个算法都封装起来,并且使它们之间可以互换。枚举可以用作策略模式中的策略类,因为枚举常量是唯一的,并且可以很方便地用于选择特定的算法。
例如,我们可以定义一个枚举类型来表示不同的排序算法:
```
public enum SortType {
BUBBLE_SORT,
QUICK_SORT,
MERGE_SORT
}
```
然后,我们可以定义一个接口来表示排序算法的策略:
```
public interface SortStrategy {
void sort(int[] array);
}
```
接下来,我们可以为每个枚举值实现一个具体的策略:
```
public class BubbleSortStrategy implements SortStrategy {
@Override
public void sort(int[] array) {
// 实现冒泡排序算法
}
}
public class QuickSortStrategy implements SortStrategy {
@Override
public void sort(int[] array) {
// 实现快速排序算法
}
}
public class MergeSortStrategy implements SortStrategy {
@Override
public void sort(int[] array) {
// 实现归并排序算法
}
}
```
最后,我们可以在客户端代码中使用枚举和策略模式来选择特定的排序算法:
```
public class SortClient {
public static void main(String[] args) {
SortType sortType = SortType.QUICK_SORT;
SortStrategy sortStrategy = null;
switch (sortType) {
case BUBBLE_SORT:
sortStrategy = new BubbleSortStrategy();
break;
case QUICK_SORT:
sortStrategy = new QuickSortStrategy();
break;
case MERGE_SORT:
sortStrategy = new MergeSortStrategy();
break;
}
int[] array = {5, 3, 1, 4, 2};
sortStrategy.sort(array);
}
}
```
在这个示例中,我们使用枚举来选择排序算法,并使用策略模式来封装算法的实现。
在Java中我能否在Switch语句中用键盘输入信息
是的,您可以在Java的Switch语句中使用键盘输入信息。您可以使用Scanner类来接受用户输入并将其存储在变量中,然后将变量用作Switch语句中的条件表达式。以下是一个示例代码,展示了如何在Switch语句中使用键盘输入信息:
```
import java.util.Scanner;
public class SwitchExample {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入一个数字:");
int num = input.nextInt();
switch (num) {
case 1:
System.out.println("您输入的是1");
break;
case 2:
System.out.println("您输入的是2");
break;
case 3:
System.out.println("您输入的是3");
break;
default:
System.out.println("您输入的不是1、2、3中的任何一个数字");
}
}
}
```
在这个示例代码中,我们使用Scanner类接受用户输入的整数,并将其存储在变量num中。然后,我们使用Switch语句根据num的值执行不同的操作。