Java 在“内部”中将字符串转换为int;如果;陈述

Java 在“内部”中将字符串转换为int;如果;陈述,java,string,if-statement,integer,int,Java,String,If Statement,Integer,Int,我正在学习我的Intro Java编程课程,我想知道在if语句中是否有一条捷径可以实现我的目标 基本上,我的程序接收一张扑克牌的两个字符缩写,并返回完整的扑克牌名(,即“QS”返回“黑桃皇后”。) 现在我的问题是: 当我为编号卡2-10编写if语句时,我是否需要为每个数字编写单独的语句,或者我是否可以将它们合并到一个if语句中 检查我的代码所说的是整数的地方(显然不是Java符号)。下面是我的代码片段以澄清: public static void main(String[] args)

我正在学习我的Intro Java编程课程,我想知道在
if
语句中是否有一条捷径可以实现我的目标

基本上,我的程序接收一张扑克牌的两个字符缩写,并返回完整的扑克牌名(,即“QS”返回“黑桃皇后”。

现在我的问题是: 当我为编号卡2-10编写
if
语句时,我是否需要为每个数字编写单独的语句,或者我是否可以将它们合并到一个
if
语句中

检查我的代码所说的是整数的地方(显然不是Java符号)。下面是我的代码片段以澄清:

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        System.out.print("Enter the card notation: ");
        String x = in.nextLine();
        if (x.substring(0,1).equals("A")){
            System.out.print("Ace");
        }
        else if(x.substring(0,1) IS AN INTEGER) <= 10)){   // question is about this line
            System.out.print(x);
        }
        else{
            System.out.println("Error.");
        }
    }
}
publicstaticvoidmain(字符串[]args){
扫描仪输入=新扫描仪(系统输入);
System.out.print(“输入卡片符号:”);
字符串x=in.nextLine();
if(x.子串(0,1).等于(“A”)){
系统输出打印(“Ace”);
}

否则,如果(x.substring(0,1)是一个整数)您可以这样做:

    char c = string.charAt(0);
    if (Character.isDigit(c)) {
        // do something
    }
x.substring(0,1)
string.charAt(0)
几乎相同。区别在于charAt返回一个
char
,substring返回一个
string

如果这不是家庭作业,我建议你改用。你可以说:

    if (StringUtils.isNumeric(x.substring(0, 1))) {
        System.out.println("is numeric");
    }

您可以这样做:

    char c = string.charAt(0);
    if (Character.isDigit(c)) {
        // do something
    }
x.substring(0,1)
string.charAt(0)
几乎相同。区别在于charAt返回一个
char
,substring返回一个
string

如果这不是家庭作业,我建议你改用。你可以说:

    if (StringUtils.isNumeric(x.substring(0, 1))) {
        System.out.println("is numeric");
    }

这是我能想到的最简单的解决方案:

private static Map<String, String> names = new HashMap<String, String>() {{
    put("A", "Ace"); 
    put("K", "King"); 
    put("Q", "Queen"); 
    put("J", "Jack"); 
}};

这是我能想到的最简单的解决方案:

private static Map<String, String> names = new HashMap<String, String>() {{
    put("A", "Ace"); 
    put("K", "King"); 
    put("Q", "Queen"); 
    put("J", "Jack"); 
}};

将字符串转换为int的另一种方法是:

Integer number = Integer.valueOf("10");

另一种方法可能是使用类或枚举。

public class Card {
    // Feel free to change this
    public char type; // 1 - 10, J, Q, K, A
    public char kind; // Spades, Hearts, Clubs, Diamonds

    public Card(String code) {
        type = code.charAt(0);
        kind = code.charAt(1);
    }

   public boolean isGreaterThan(Card otherCard) {
       // You might want to add a few helper functions
   }
}

将字符串转换为int的另一种方法是:

Integer number = Integer.valueOf("10");

另一种方法可能是使用类或枚举。

public class Card {
    // Feel free to change this
    public char type; // 1 - 10, J, Q, K, A
    public char kind; // Spades, Hearts, Clubs, Diamonds

    public Card(String code) {
        type = code.charAt(0);
        kind = code.charAt(1);
    }

   public boolean isGreaterThan(Card otherCard) {
       // You might want to add a few helper functions
   }
}

您是否将“十个黑桃”输入为“10S”或“TS”?应为10S,这将在任何转换为字符的尝试中抛出一个曲线球。因此,任何西装的10都是三个字符的缩写?您是否将“十个黑桃”输入为“10S”或“TS”?应该是10,这将在任何试图转换为charSo时抛出一个曲线球任何西装的10都是一个三个字符的缩写?谢谢,我认为第一个就足够了。我想如果我只使用一个单独的if语句,我就可以绕过10。为快速响应竖起大拇指^-^谢谢,我认为第一个是足够了。如果我只使用一个单独的if语句,我想我可以绕过10。为快速响应竖起大拇指^-^