2011-09-05 27 views
2

如果我的域名是31.example.appspot.com(App Engine的前添加一個版本號),我可以檢索從Request對象這樣的域名:如何從Java中的字符串中提取部分域?

String domain = request.getServerName(); 
// domain == 31.example.appspot.com 

我想是提取之外的所有版本號,所以我最終有兩個值:

String fullDomain; // example.appspot.com 
String appName; // example 

由於域可以是任何內容來源:

1.example.appspot.com 

到:

31.example.appspot.com 

我如何提取在Java中fullDomainappName值?

這裏的正則表達式適合嗎?

回答

4

如果您始終確信這種模式,那麼只需找到第一個點並從那裏開始。

fullDomain = domain.subString(domain.indexOf('.')); 

UPDATE:後詹姆斯和肖恩評論,以下是完整的正確的代碼:

int dotIndex = domain.indexOf(".")+1; 
fullDomain = domain.substring(dotIndex); 
appName = domain.substring(dotIndex,domain.indexOf(".",dotIndex)); 
+0

您可能需要添加如何讓應用程序的名字也,所以的indexOf值保存到一個int,然後將其用於兩個子字符串調用。 –

+0

其實:'domain.indexOf('。')+ 1' –