Prezados, bom dia. Tenho uma dúvida de por quê o código abaixo não funciona:
Substring
private static String retornarURL(String texto, String parametro) {
String url;
int posicaoInicial = 0, posicaoFinal;
try { // tenta se for HTTPS
posicaoInicial = texto.indexOf("https://" + parametro);
System.out.println("HTTPS: posição = " + posicaoInicial);
} catch (Exception e) { // pega se for HTTP
System.out.println(e);
posicaoInicial = texto.indexOf("http://" + parametro);
System.out.println("HTTP: posição = " + posicaoInicial);
} finally {
posicaoFinal = texto.indexOf("\"", posicaoInicial);
System.out.println("Posição inicial: " + posicaoInicial + " / final: " + posicaoFinal);
System.out.println("URL 1: " + texto.substring(33954, 34011));
System.out.println("URL 2: " + texto.substring(posicaoInicial, posicaoInicial));
System.out.println("URL 3: " + url);
}
return url;
}
O código tem o propósito de identificar um link http://linkDeAlgumaCoisa.com.br/ dentro de um site.
Dentro do finally
, ele mostra corretamente a posicaoInicial
e a posicaoFinal
; quando uso o print passando substring
especificando os valores (URL 1), ele mostra corretamente o código.
MAS quando passo os parâmetros (mesmo as variáveis estando com o valor correto), não funciona.
Vocês têm alguma ideia do motivo de substring
funcionar de forma explícita mas não por parâmetros?
Muito obrigado.