it-swarm-pt.tech

Determinar se a sequência começa com as letras A a I

Eu tenho uma simples Java). Preciso determinar se uma string começa com a letra A a I. Eu sei que tenho que usar string.startsWith (); mas não sei quer escrever, if(string.startsWith("a")); todo o caminho até eu, parece eficiente.Eu deveria estar usando algum tipo de loop?

11
Archey

Você não precisa de expressões regulares para isso.

Tente isso, supondo que você queira apenas maiúsculas:

char c = string.charAt(0);
if (c >= 'A' && c <= 'I') { ... }

Se você deseja uma solução regex, no entanto, pode usar este ( ideone ):

if (string.matches("^[A-I].*$")) { ... }
30
Mark Byers
if ( string.charAt(0) >= 'A' && string.charAt(0) <= 'I' )
{
}

deveria fazê-lo

3
parapura rajkumar

Que tal isso por questões de brevidade?

if (0 <= "ABCDEFGHI".indexOf(string.charAt(0))) {
    // string starts with a character between 'A' and 'I' inclusive
}
2
rsp

Experimentar

string.charAt(0) >= 'a' && string.charAt(0) <= 'j'
1
Jin
char c=string.toLowerCase().charAt(0);
if( c >= 'a' && c <= 'i' )
    ...

Isso facilita a extração como método:

public static boolean startsBetween(String s, char lowest, char highest) {
    char c=s.charAt(0);
    c=Character.toLowerCase(c);  //thx refp
    return c >= lowest && c <= highest;
}

que é altamente preferido para qualquer solução em linha. Para a vitória, marque-o como final, de modo que Java o inclua para você e ofereça um desempenho melhor do que uma solução em linha codificada também.

1
Bill K

if (string.toUpperCase (). charAt (0)> = 'A' && string.toUpperCase (). charAt (0) <= 'I')

deve ser a versão mais fácil ...

0
Sebastian Oberste-Vorth