Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Java中从字符串中提取域的一部分?_Java_Regex - Fatal编程技术网

如何在Java中从字符串中提取域的一部分?

如何在Java中从字符串中提取域的一部分?,java,regex,Java,Regex,如果我的域是31.example.appspot.com(应用程序引擎预先提供了一个版本号),我可以从请求对象中检索域,如下所示: String domain = request.getServerName(); // domain == 31.example.appspot.com 我想要的是提取除版本号之外的所有内容,因此我最终得到两个值: String fullDomain; // example.appspot.com String appName; // example 因为

如果我的域是
31.example.appspot.com
(应用程序引擎预先提供了一个版本号),我可以从请求对象中检索域,如下所示:

String domain = request.getServerName();
// domain == 31.example.appspot.com
我想要的是提取除版本号之外的所有内容,因此我最终得到两个值:

String fullDomain; // example.appspot.com
String appName;    // example
因为域可以是以下任何内容:

1.example.appspot.com
致:

如何提取Java中的
fullDomain
appName
值?


正则表达式在这里合适吗?

看看java.lang.String上的方法。

如果您总是确定这种模式,那么只需找到第一个点并从那里开始

fullDomain = domain.subString(domain.indexOf('.'));
更新:在James和Sean发表评论后,以下是完整正确的代码:

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

您可能还需要添加获取appName的方法,因此将indexOf值保存为int,然后将其用于两个子字符串调用。实际上:
domain.indexOf('.')+1
int dotIndex = domain.indexOf(".")+1;
fullDomain = domain.substring(dotIndex);
appName = domain.substring(dotIndex,domain.indexOf(".",dotIndex));