我有一个可以包含的字符串:
纯文本(例如回答问题或电子邮件);
只有数字和" =&#34 ;;
只有数字和" [" "]" ""
我试图找到一种方法来区分这些情况,特别是能够知道该字符串是否只属于一个案例(即它是否包含纯文本和数字以及其他字符,如" ="或" ["我想把它放在第一种情况下,如果它只包含数字和" ="我' d喜欢把它放在第二种情况下)。
我尝试使用类似的东西:
if (text.contains("[") && text.contains("]") && text.contains(","))
//other code
但在这种情况下,它可能是文字和那些字符或数字以及那些字符,所以我无法决定我是在第一种情况还是第二种情况。
感谢您的帮助。
答案 0 :(得分:4)
这可以通过使用正则表达式轻松解决。看看here。
在你的情况下:这是我将使用的正则表达式:
只有数字和“=”;
s.matches("^[0-9|=]+$");
仅限数字和“[”“]”“,”。
s.matches("^[0-9|\[|\]|,]+$");
第一个案例就是其余的一切!
!s.isEmpty();
答案 1 :(得分:3)
前往正则表达式
对于数字:
System.out.println(data.matches("[0-9]+"));
对于数字和' ='
System.out.println(data.matches("[0-9=]+"));
对于数字和方括号,和
System.out.println(data.matches("[0-9\\[\\],]+") );
纯文字:
System.out.println(data.matches("[a-zA-Z]+"));
其中data
是您的输入文字