问题描述
请问如何用JAVA判断一个字符串是否是“A1”-“A15”?刚才一位朋友给我解答,我给了分。publicclassTest{publicstaticvoidmain(String[]args){System.out.println("A13".matches("A[1-9]|A1[0-5]"));}}可我在我的代码里发现不对,后来发现应该提问成:请问如何用JAVA判断一个盘符字符串是否是“A1”-“A15”?比如我把D盘命名A1,可取出的字符串却为A1(D:),这样就导致上述代码不正确了。再请各位高手帮我想想怎么判断盘符字符串是否是“A1”-“A15”?谢谢
解决方案
解决方案二:
没太看明白,是这个意思么:有字符串A1(D:),A2(E:)之类的,现在要去匹配A1-A15?先substring如何?取到A1,A2之类,然后套用原来的方法
解决方案三:
我也没看懂,楼上说的对,A1(D:)截掉(D:)再判断A1不就行了,String类里字符串操作多了。
解决方案四:
如果字符串都取出来了,再获得其中的一部分应该没问题了吧?如果你取的字符串是"A1(D:)"可以有两种方法:第一种:用subString()进行截取第二种:用split("(");然后取第一个值。还是用第一种快些
解决方案五:
改成:System.out.println("A13".matches("^A[1-9]$|^A1[0-5]$"));
就是限定必须以A后头,数字结尾。
解决方案六:
引用1楼xuanyuanyilu的回复:
没太看明白,是这个意思么:有字符串A1(D:),A2(E:)之类的,现在要去匹配A1-A15?先substring如何?取到A1,A2之类,然后套用原来的方法
如果用substring,str.substring(0,1)的话,那么A100,都符合要求了呀。我希望的知识A1-A15。比如优盘插入电脑,括号里面的盘符是不确定的,可能是A1(E:),也可能是A1(F:)。如何判断呢?publicclassTest{publicstaticvoidmain(String[]args){System.out.println(str.substring(0,1).matches("A[1-9]|A1[0-5]"));}}这样肯定不对呀