Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将包含一个字母和一个int的字符串分割,并将它们定义为新常量_Java_String - Fatal编程技术网

Java 将包含一个字母和一个int的字符串分割,并将它们定义为新常量

Java 将包含一个字母和一个int的字符串分割,并将它们定义为新常量,java,string,Java,String,我想知道是否有一种简单的方法可以将一个字符串,比如说“G20”转换成两个独立的常量,其中字母=G,数字=20 例如 是输入中的模式常数,即:;最初后跟数字的包含字符[]的字符串。如果是这种情况,我们可以使用模式匹配来分割字符串。您可以使用子字符串来获得单独的字母和数字 如果字符串的第一个字符始终有一个字母,则可以将第一个元素作为字母,将剩余的元素作为数字 字母=输入[0]; 数字=输入[1..sizeof(输入)] 我认为最合适的解决方案是正则表达式 特别是,您可以创建两个匹配组以捕获数字之前的

我想知道是否有一种简单的方法可以将一个字符串,比如说“G20”转换成两个独立的常量,其中字母=G,数字=20

例如


是输入中的模式常数,即:;最初后跟数字的包含字符[]的字符串。如果是这种情况,我们可以使用模式匹配来分割字符串。

您可以使用
子字符串
来获得单独的字母和数字

如果字符串的第一个字符始终有一个字母,则可以将第一个元素作为字母,将剩余的元素作为数字

字母=输入[0];
数字=输入[1..sizeof(输入)]

我认为最合适的解决方案是正则表达式

特别是,您可以创建两个匹配组以捕获数字之前的字母:

([A-Z])([0-9]+)

使用该类,您可以使用group方法获得两个匹配的组。

请尝试以下方法:

public void splitString(String-inputString){//inputString=G20 String strSubstring=inputString.charAt(0); int intSubstring=Integer.parseInt(inputString.substring(1,inputString.length());
}

如果你的“G”只能是一个字母,那么下面的单词就可以了

    String token = "G20";
    String letter = token.substring(0, 1);
    String number = token.substring(1, token.length());

    System.out.println("letter is : " + letter + "\nNumber is : " + number);//Prints out : letter is : G Number is : 20

您可以使用正则表达式进行模式匹配,并确定字符是字符串还是整数。如果所有三个字符串都是常量,您可以将其转换为:
final string letter=“G”;
最终整数=20;
最终字符串输入=字母+数字;
,请注意,您的措辞有些矛盾。通常是一个“常量”指的是编译时已知的值;因此您可以将常量设置为类似于
public final static int SOME_CONST=42
…而您也在谈论用户输入(这显然排除了创建常量的可能性)。如果我没说错,您尝试获取一次userinput,将此输入解析为2个变量,然后再也不要更改它们,最合适的方法可能是对这些部分使用私有变量。这些部分将具有一个公共getter函数,并且包含这些部分的对象将具有一个允许提供值的构造函数对于零件。图案将始终是一个字母,后跟任何非负数。此外,如果没有数字,则数字常量应设置为1。
    String token = "G20";
    String letter = token.substring(0, 1);
    String number = token.substring(1, token.length());

    System.out.println("letter is : " + letter + "\nNumber is : " + number);//Prints out : letter is : G Number is : 20