2011-01-25 3 views

ответ

0
String str="www.google.com"; 

try{ 
     System.out.println(str.substring(str.lastIndexOf(".", str.lastIndexOf(".") - 1) + 1)); 
    }catch(ArrayIndexOutOfBoundsException ex){ 
     //handle it 
    } 
1

Предполагая, что вы хотите получить домен верхнего уровня из имени хоста, вы можете попробовать это:

Pattern pat = Pattern.compile(".*\\.([^.]+\\.[^.]+)") ; 
Matcher mat = pat.matcher("maps.google.com") ; 
if(mat.find()) { 
    System.out.println(mat.group(1)) ; 
} 

, если это наоборот, и вы хотите все, исключая последние 2 части домена (в вашем примере: www, maps, and maps.maps), затем просто измените первую строку на:

Pattern pat = Pattern.compile("(.*)\\.[^.]+\\.[^.]+") ; 
1

Разделить на . и выбрать последние два бита.

String s = "maps.google.com"; 
    String[] arr = s.split("\\."); 
    //should check the size of arr here 
    System.out.println(arr[arr.length-2] + '.' + arr[arr.length-1]); 
1

Распаковка известная подстроку из строки не имеет смысла;) Почему бы вам сделать

String result = address.replaceAll("^.*google.com$", "$1"); 

при этом равна:

String result = "google.com"; 

Если вы необходимо тест, попробуйте:

String isGoogle = address.endsWith(".google.com"); 

Если вам нужна другая часть от адреса Google, это может помочь: (! Намек - первая строка кода представляет собой решение для вашей проблемы)

String googleSubDomain = address.replaceAll(".google.com", ""); 

Смежные вопросы