2011-09-05 98 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' –