Java 字符串的Switch语句

Java 字符串的Switch语句,java,android,switch-statement,Java,Android,Switch Statement,我试图在Android应用程序中使用开关语句。此开关语句正在测试一个字符串的值,然后在此基础上更改另一个字符串的值 字符串s1=“a” 然后 字符串s2=“1” 我不断收到一个错误,说我需要将法规遵从性更改为1.7。在我这样做之后,我会得到一个错误,说我需要将遵从性更改为1.6 有办法解决这个问题吗?或者有人能想出解决方法吗?不要使用switch case,而是使用if else和string equals()方法。它将有助于代码兼容性,因为带字符串的开关仅在jdk 1.7+中可用。不要使用开关

我试图在Android应用程序中使用
开关
语句。此
开关
语句正在测试一个
字符串的值
,然后在此基础上更改另一个字符串的值

字符串s1=“a” 然后 字符串s2=“1”

我不断收到一个错误,说我需要将法规遵从性更改为1.7。在我这样做之后,我会得到一个错误,说我需要将遵从性更改为1.6


有办法解决这个问题吗?或者有人能想出解决方法吗?

不要使用switch case,而是使用if else和string equals()方法。它将有助于代码兼容性,因为带字符串的开关仅在jdk 1.7+中可用。

不要使用开关大小写,而是使用if-else和string equals()方法。它将有助于代码兼容性,因为带字符串的开关仅在jdk 1.7+中可用。

Java不支持早期Java 7中的开关/案例中的字符串。但是如果您使用Java6,则可以通过使用枚举来实现所需的结果

private enum Fruit {
apple, carrot, mango, orange;
}

String value; // assume input
Fruit fruit = Fruit.valueOf(value); // surround with try/catch

switch(fruit) {
    case apple:
        method1;
        break;
    case carrot:
        method2;
        break;
    // etc...
}

Java不支持早期Java 7中的switch/case字符串。但是如果您使用Java6,则可以通过使用枚举来实现所需的结果

private enum Fruit {
apple, carrot, mango, orange;
}

String value; // assume input
Fruit fruit = Fruit.valueOf(value); // surround with try/catch

switch(fruit) {
    case apple:
        method1;
        break;
    case carrot:
        method2;
        break;
    // etc...
}

使用字符串比较代替打开字符串(在Java 7中可用)可能如下所示:

//as an example, if s2 equals 'b'
String s2 = "b";

//this uses String's equals() method
if (s1.equals("a")) then {
    s2 = "1";
}
else if (s1.equals("b")) then {
    s2 = "2";
}
else {
    s2 = "3";
} 

当然,根据您的需要调整条件。

使用字符串比较而不是打开字符串(在Java 7中可用)可能如下所示:

//as an example, if s2 equals 'b'
String s2 = "b";

//this uses String's equals() method
if (s1.equals("a")) then {
    s2 = "1";
}
else if (s1.equals("b")) then {
    s2 = "2";
}
else {
    s2 = "3";
} 

当然,根据需要调整条件。

如果是maven项目,则需要在pom.xml中添加以下代码

  <properties>
    <maven.compiler.target>1.8</maven.compiler.target>
    <maven.compiler.source>1.8</maven.compiler.source>
  </properties>

1.8
1.8

如果是maven项目,则需要在pom.xml中添加以下代码

  <properties>
    <maven.compiler.target>1.8</maven.compiler.target>
    <maven.compiler.source>1.8</maven.compiler.source>
  </properties>

1.8
1.8


您可以发布您的代码吗?您不能在java 7之前打开字符串。你有什么Java版本?你的代码到底是什么?。我猜android仍然不支持java 7在java 7(android还不支持)之前,您可以使用switch只比较整数…:(这不是Visual Basic!。从构建工具19开始,支持java 7。请发布您的代码好吗?您不能在java 7之前打开字符串。您有什么java版本?您的代码到底是什么?我猜android仍然不支持java 7。在java 7之前(android尚不支持),您只能使用switch来比较整数…:(这不是Visual Basic!。对于构建工具19 java 7 is supportedEnum常量应该是大写的,因为它们本质上是
public static final
字段。你是对的,但我没有说如何编程,我给出了解决此问题的方法检查我的问题是否对你有帮助虽然我没有使用此方法,但它确实会思考:s因为我只查找用户输入的一个字母(我只使用字符串,因为我发现它更容易)我可以将字母转换为ASCII值,然后将我的switch语句的值设为非ASCII值。@just_一些家伙为什么不使用
char
本身呢?枚举常量应该是大写的,因为它们本质上是
公共静态final
字段。你说得对,但我没有说如何编程,我给出了解决这个问题的方法检查我的qu当我没有使用这种方法时,它确实开始思考:因为我只寻找用户输入的一个字母(我只使用字符串,因为我发现它更容易)我可以将字母转换为ASCII值,并将我的switch语句设置为非ASCII值。@为什么不使用
char
本身呢?这也让我在使用字符串时感到头疼,尽管我不确定“string equals method()是什么意思。你能举个简单的例子吗?对不起,我对这方面还很陌生。这也让我在使用字符串时感到头疼,尽管我不确定“string equals method()是什么意思。”.你能举个简单的例子吗?对不起,我在这方面还是个新手。谢谢!下次有机会我会试试的。谢谢!下次有机会我会试试的。