Olá Pessoal,
Preciso pegar dois caracteres do meio de uma string que pode variar de tamanho. Por exemplo, tenho essas duas strings:
U0601NM.001
GOH5 0601NM.001 (esta string inclui o espaço em branco)
Preciso pegar os caracteres “01” do meio da string. O tamanho da string é variável, porém os caracteres estão na mesma posição contando da direita para a esquerda. Já tentei usar o substring de várias formas, mas não consegui êxito.
Alguém tem alguma idéia de como posso extrair esses caracteres?
Da direita para a esquerda? Use substring mesmo, mas você vai precisar da função “length()” para determinar o tamanho da string. Você não sabe fazer contas de somar e subtrair?
Por exemplo, no seu caso:
String s = "U0601NM.001";
int n = s.length(); // dá o valor 11
// Contando da direita para a esquerda, você quer o 8o. caracter. Portanto a posição
// contada a partir do início deve ser o 4o. caracter (11 - 8 + 1), mas como
// o Java começa a contar as posições por 0, teremos a posição = 11 - 8
int pos = n - 8;
String t = s.substring (pos, pos + 2); // porque você quer uma string com 2 caracteres que começa nessa posição
eu usava o StringTokenizer
Eu não consegui entender!!
Você quer que seu programa sempre pegue dois caracteres que estejam no meio da da sua String?
ou
Você que encontrar as posições dos caracteres "01 " em uma String?
[quote]Eu não consegui entender!!
Você quer que seu programa sempre pegue dois caracteres que estejam no meio da da sua String?
ou
Você que encontrar as posições dos caracteres "01 " em uma String?[/quote]
DaviPiala, Essa string representa o nome de um arquivo e esses caracteres que quero capturar representam o mês de referência desse arquivo. Nesse caso foi “01” mas poderia ser “02” ou “03” até “12”.
thingol, consegui resolver o problema usando a sua sugestão, mas tive que usar um trim() antes do length() porque algumas strings continham espaços em branco no inicio ou no fim. Agradeço pela colaboração.
Valeu pessoal, T+…