2013-08-02 6 views

Odpowiedz

16

nie wolno używać regex:

Character.isDigit(string.charAt(0)) && 
           Character.isDigit(string.charAt(string.length()-1)) 

(patrz Character.isDigit())

+1

Myślę, że jest to szybszy sposób. –

+0

Zgadzam się, nie potrzebuję regex. – dic19

+0

@MattSmith Czy jesteś pewien, że pochodzi z tej linii? Nie ma przypadków, w których powinno to spowodować 'IllegalStateException'. Spróbuj sprawdzić otaczający kod. – arshajii

9

Metody startsWith() i endsWith() w klasie String akceptują tylko ciąg, a nie wyrażenie regularne.

+0

To prawda, ale w obecnej formie jest to raczej komentarz niż odpowiedź. Jak zasugerowałbyś im "... [sprawdź], czy ciąg zaczyna się i kończy cyframi."? – Leigh

4

Można użyć:

String string = "123test123"; 
if(string.matches("\\d.*\\d")) 
{ 
    // ... 
} 
+0

Działa bez kitu i dolara też ... – sashok724

+1

@ProgramFOX Naprawdę nie potrzebujesz kotwic z 'match()'. – arshajii

4

Można użyć metody matches na String wygląda następująco:

public static void main(String[] args) throws Exception { 
    System.out.println("123456".matches("^\\d.*?\\d$")); 
    System.out.println("123456A".matches("^\\d.*?\\d$")); 
    System.out.println("A123456".matches("^\\d.*?\\d$")); 
    System.out.println("A123456A".matches("^\\d.*?\\d$")); 
} 

Wyjście:

true 
false 
false 
false 
0

Proszę postępować zgodnie z fragmentem kodu.

String variableString = "012testString"; 
Character.isDigit(string.charAt(0)) && variableString.Any(c => char.IsUpper(c)); 
Powiązane problemy