Metodo Substring

5 respostas
Alkamavo

Boas pessoal tenho uma duvida...

tenho este linha de input
0 4 14 45 S 3 33 15 W
quero partir e duas strings do tipo

4 14 45 S primeira string

e

3 33 15 W a segunda..

porem a API do substring

Examples:

         "hamburger".substring(4, 8) returns "urge"
         "smiles".substring(1, 5) returns "mile"
         
    Parameters:
        beginIndex - the beginning index, inclusive.
        endIndex - the ending index, exclusive.
se o segundo parametro é exclusivo...estou com problema na hora de pegar o ultimo elemento da segunda string pk ultrapasso o tamanhho do vector..
for (int i = 0; i < n_links; i++) {
			INode Node;
			String data = input.nextLine();
			int number=Integer.parseInt(data.substring(0, 2).trim());
			
	 if (number<=9){
			Node = new Node(data.substring(2, 12), data.substring(12,
						data.length() - 1).concat(
						data.substring(data.length() - 1)));
			System.out.println(Node.toString());

		}
			if (number>= 10) {
				Node = new Node(data.substring(3, 12), data.substring(13, 22));
				System.out.println(Node.toString());


		}
			}

5 Respostas

ViniGodoy
  1. O ending index pode ter o tamanho do string.
  2. Há também o método substring que aceita só o índice inicial, e pega até o final da String.

Você pode fazer:

String coord = "0 4 14 45 S 3 33 15 W"; index = Math.max(coord.indexOf("S"), coord.indexOf("N"))+1; String lat = coord.substring(0, index); String lon = coord.substring(index+1);

Alkamavo

BOas Mestre VinyGodoy…

a soluçao que apresentaste esta perto do que quero…
O senao esta no facto de ele nao pegar o “S” da coordenada…
o output é do genero
:

0º4'14''null   3º33'15''west
1º2'34''null   2º25'15''west
2º0'35''null    2º34'45''west
3º1'36''null    3º25'25''west
4º2'37''null    1º34'45''west
5º1'38''null    0º25'35''west
6º0'0''null      0º0'0''east
7º2'30''null    0º24'45''east
8º1'39''null    1º35'45''east
9º0'35''null     2º24'55''east
10º1'24''null   3º33'55''east
11º2'24''null   2º24'45''east

como se pode ver…ele nao me da o ponto Cardeal para este exemplo:

12 3 24 45 N 3 24 45 E

ele nao devia pegar o primeiro numero que é apenas a ordem de entrada do mesmo…
deve sim me pegar os numero a seguir…
ficando assim:

primeira

3 24 45 N

segunda

3 24 45 E
Alkamavo

Boas…viny GOdoy…
Martelei o Codigo e ja ta a funcionar…

Obrigado…

ViniGodoy

Beleza, eu não estava num micro com Java na hora.
Por isso, fiz o código ali de cabeça, sem compilar.

Mas que bom que conseguiu! :slight_smile:

Qual era o erro?

Alkamavo

o metodo tava bom…o meu metodo a minha maneira de tratar a string no construtor do Objecto é tinha de ser martelado…

Estou a fazer um gps…depois eu posto aki o codigo todo para a malta…

Criado 8 de junho de 2008
Ultima resposta 10 de jun. de 2008
Respostas 5
Participantes 2