Buscar
Social
Ofertas laborales ES

Foro sobre Java SE > Formato de una cadena de caracteres

Buenas,
A ver si me podéis echar un cable con esto. Necesito controlar el formato de una cadena que simule una dirección de siguiendo este formato: loquesea.loquesea.loquesea Ejemplo:[b] futbol.deporte.com[/b] . Las subcadenas no pueden empezar por caracteres especiales y como carácter especial solo se puede emplear "-", pero no al comienzo de las mismas. Hasta ahora he probado esto:
[b]url.matches("([^-][a-zA-Z0-9-]{2,63})+\\.([^-][a-zA-Z0-9-]{2,63})+\\.([a-zA-Z]{2,63})")[/b], pero esto permite introducir cualquier carácter al comienzo, menos "-", aparte también me permite escribir algo así: loquesea.loquesea.loquesa.loquesea .Muchas gracias.

Saludos.

junio 2, 2015 | Unregistered CommenterBanshi

Hola.

Yo lo que haría sería tratar la URL como un string y hacer un parser para eso. Por ejemplo:

public void method(){
String cadenaURL = "futbol.deporte.com" ;
String [] strings = new String[3];
String tmp;
int limitePuntos = 2;
int contadorPuntos = 0; //Cuenta los veces que ha aparecido el caracter "."
int pos;

while(((pos = cadenaURL.indexOf("."))>0) && (contadorPuntos < limitePuntos) ){
if(contadorPuntos == limitePuntos){
return;
}
tmp = cadenaURL.substring(0,pos);
if((tmp.charAt(0) == '-') || Character.isLetter(tmp.charAt(0))){
strings[contadorPuntos] = tmp;
}
contadorPuntos++;
cadenaURL = cadenaURL.substring(pos);
}
}

No sé si es lo que buscas.

Saludos.

junio 2, 2015 | Unregistered CommenterMrStinson

No me vale esa solución, pero ya lo he resuelto de esta forma: url.matches("([a-zA-Z][a-zA-Z0-9-]{2,63})+\\.([a-zAZ][a-zA-Z0-9-]{2,63})+\\.+([a-zA-Z]{1,63})").

Muchas gracias.

junio 2, 2015 | Unregistered CommenterBanshi