import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Enter Code");
String code = input.next();
}
public static boolean isValidCode (String code) {
}
}
当我尝试对输入进行限制时,我在java中遇到了很多麻烦。在此示例中,我需要字符串代码仅接受$
和%
等符号。如何检查以确保没有数字,字母或其他符号?
感谢
答案 0 :(得分:5)
这应该可以使包含除$
和/或%
之外的任何内容的字符串无效:
public static boolean isValidCode (String code) {
return code.matches("^[$%]*$");
}
如果您还要求字符串不为空,请将*
更改为+
。如果您需要接受其他字符,只需将它们添加到字符类列表(方括号之间的字符)。
答案 1 :(得分:1)
public static boolean isValidCode(String code) {
return code.matches("[$%]*");
}
正如你在regex javadoc中看到的那样,尖括号表示你可以在封闭的字符之间进行选择(在你的情况下为$和%); *说它必须出现0次或更多次。
答案 2 :(得分:0)
使用Character
类。
以下是您的代码:
public class Hello {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Enter Code");
String code = input.next();
char c = code.charAt(0);
if( (!Character.isDigit(c)) && (!Character.isLetter(c) && (!Character.isWhitespace(c)))){
if(c == '%' || c=='$'){
System.out.println("Its what u want");
}else{
System.out.println("Not what u want");
}
}else{
System.out.println("Not what u want$");
}
}
}
答案 3 :(得分:0)
import java.util.Scanner;
public class Test
{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
System.out.println("Enter Code");
String code = input.next();
for(int i=0;i<code.length();i++)
{
char c = code.charAt(i);
if((!Character.isDigit(c))&&(!Character.isLetter(c)&&(!Character.isWhitespace(c))))
{
if(c=='%'||c=='$')
{
//What U Want..........
}
else
{
System.out.println("Plz! Enter Only '%' or '$'");
break;
}
}//if
else
{
System.out.println("Allows Only '%' or '$' Symbols");
break;
}
}
}
}