Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.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 检查字符串是否遵循特定格式?_Java_String - Fatal编程技术网

Java 检查字符串是否遵循特定格式?

Java 检查字符串是否遵循特定格式?,java,string,Java,String,我编写了一个程序,将ASCII字符输入(它实际上是一个字符串,然后我使用charAt(0))输入到JTextField中,然后使用g2d.drawString()显示其十六进制、二进制、int和八进制值。我还希望能够输入“整数”值(实际上也是字符串)并显示信息。为了将“整型”值与“字符”输入分开,我希望能够按原样输入字符值,并使用模式#I输入整数。这样,我可以使用if语句检查是否遵循“integer”模式,否则(否则)将输入作为ascii“char”进行计算。如何检查字符串是否遵循此模式 示例:

我编写了一个程序,将ASCII字符输入(它实际上是一个字符串,然后我使用charAt(0))输入到JTextField中,然后使用g2d.drawString()显示其十六进制、二进制、int和八进制值。我还希望能够输入“整数”值(实际上也是字符串)并显示信息。为了将“整型”值与“字符”输入分开,我希望能够按原样输入字符值,并使用模式
#I
输入整数。这样,我可以使用if语句检查是否遵循“integer”模式,否则(否则)将输入作为ascii“char”进行计算。如何检查字符串是否遵循此模式

示例:

字符输入:

3//我将把它计算为ascii字符值3

int输入:

3i//我将其计算为3的整数值

注意:整数输入可以是多个数字。

查看该类。你可以用这个做你想做的事。

看看这个课程。你可以用这个做你想做的事。

像这样的事

if (str.length() == 1) {
    char ch = charAt(0);
    // code here
} else if (str.endsWith("i")) {
    int num = Integer.parseInt(str.substring(0, str.length() - 1));
    // code here
} else {
    throw new IllegalArgumentException("Bad input: " + str);
}
如果
i
前面的值无效,则
parseInt()
将抛出
NumberFormatException
。因为这是
IllegalArgumentException
的子类,所以上面的代码将对任何错误文本抛出
IllegalArgumentException

类似的内容

if (str.length() == 1) {
    char ch = charAt(0);
    // code here
} else if (str.endsWith("i")) {
    int num = Integer.parseInt(str.substring(0, str.length() - 1));
    // code here
} else {
    throw new IllegalArgumentException("Bad input: " + str);
}


如果
i
前面的值无效,则
parseInt()
将抛出
NumberFormatException
。由于这是
IllegalArgumentException
的一个子类,上面的代码将对任何错误文本抛出
IllegalArgumentException

@MadProgrammer如果这就是你所说的,那么它可能就是问题所在。谢谢。基本上,我要问的问题是,你知道正则表达式是什么吗?你试过了吗?但答案似乎是(通常)不知道,但我知道你知道,所以一切都很棒@是的,我把它钉死了。非常感谢,很高兴你和洛根给我看了这个,这似乎是一个非常有用的概念。我没有意识到有一个完整的类是用来寻找字符串模式的。当我查找模式时,我通常将字符串拆分为一个字符数组,并使用switch语句在数组中循环查找所需的字符。当然,在这种情况下,这不起作用,因为我不知道字符串的长度,因为输入的值可能是很多位数。哦,是的,你应该学习正则表达式。如果使用得当,它们可能非常强大,但它们不能做所有事情,例如,它们不能处理复杂的嵌套语法,即使很多人一直在尝试。@mad程序员如果这就是你所说的,那么它可能就是问题所在。谢谢。基本上,我要问的问题是,你知道正则表达式是什么吗?你试过了吗?但答案似乎是(通常)不知道,但我知道你知道,所以一切都很棒@是的,我把它钉死了。非常感谢,很高兴你和洛根给我看了这个,这似乎是一个非常有用的概念。我没有意识到有一个完整的类是用来寻找字符串模式的。当我查找模式时,我通常将字符串拆分为一个字符数组,并使用switch语句在数组中循环查找所需的字符。当然,在这种情况下,这不起作用,因为我不知道字符串的长度,因为输入的值可能是很多位数。哦,是的,你应该学习正则表达式。如果使用得当,它们可能会非常强大,但它们不能做所有事情,例如,即使很多人不断尝试,它们也不能处理复杂的嵌套语法。谢谢Logan。像往常一样。Javadoc有答案!不客气,哈哈。洛根,我接受了安德烈亚斯的回答,因为它在上下文中更有意义,然而,你的回答也很好,我投了更高的票。没问题。谢谢你,谢谢你,洛根。像往常一样。Javadoc有答案!不客气,哈哈。洛根,我接受了安德烈亚斯的回答,因为它在上下文中更有意义,然而,你的回答也很好,我投了更高的票。没问题。谢谢。现在有趣的是,在这种情况下,这将起作用,因为我知道“我”将永远在结尾。然而,在一般意义上,Logan/MadProgrammer的方式更好,因为它允许更多的适应性@我应该接受哪一个?一般来说更好的一个,或者更具体的情况更好地回答这个问题。@AshwinGupta你应该接受你最能接受的一个,但你可以投票选出所有你觉得有用的答案。@AshwinGupta尽管regex可以做到这一点,而且擅长于此,但对于你的特定目的来说,这真的是太过分了。;-)谢谢你的建议!我也一定会努力学习正则表达式。目前,我的程序正在运行。我实际上想出了另一种方法,我可以使用swing JList来选择它是int还是char。现在非常有趣的是,在本例中,这将起作用,因为我知道“I”将始终位于末尾。然而,在一般意义上,Logan/MadProgrammer的方式更好,因为它允许更多的适应性@我应该接受哪一个?一般来说更好的一个,或者更具体的情况更好地回答这个问题。@AshwinGupta你应该接受你最能接受的一个,但你可以投票选出所有你觉得有用的答案。@AshwinGupta尽管regex可以做到这一点,而且擅长于此,但对于你的特定目的来说,这真的是太过分了。;-)谢谢你的建议!我也一定会努力学习正则表达式。目前,我的程序正在运行。我实际上想出了另一种方法,我可以使用swing JList来选择是int还是char。