Metodo Substring

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…

[code]

	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());


	}
		}[/code]
  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);

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

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

Obrigado…

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?

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…