字符串只接受某些字符

时间:2012-09-23 16:50:53

标签: java string

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中遇到了很多麻烦。在此示例中,我需要字符串代码仅接受$%等符号。如何检查以确保没有数字,字母或其他符号? 感谢

4 个答案:

答案 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;
            }
        }
    }
}