我正在测试Java 8的一些新功能,并将示例复制到我的IDE(Eclipse最初,然后是IntelliJ),如下所示:http: //docs.oracle.com/javase/tutorial/java/javaOO/examples/RosterTest. java的
Eclipse没有为lambda表达式提供任何支持,并且IntelliJ不断报告错误"在此语言级别不支持Lambda表达式".我想知道这是我的安装,代码或支持的问题.
给定一个URL,我想提取域名(它不应该包含'www'部分).网址可以包含http/https.这是我写的java代码.虽然它似乎工作正常,有没有更好的方法或有一些边缘情况,可能会失败.
public static String getDomainName(String url) throws MalformedURLException{
if(!url.startsWith("http") && !url.startsWith("https")){
url = "http://" + url;
}
URL netUrl = new URL(url);
String host = netUrl.getHost();
if(host.startsWith("www")){
host = host.substring("www".length()+1);
}
return host;
}
Run Code Online (Sandbox Code Playgroud)
输出:google.com
我挖掘了源代码,但我找不到这种行为的原因.
根据Android中的Use URI builder或使用变量创建URL,这应该绝对正常.
说我想连接到 https://www.gravatar.com/eac16c9fc481cb6825f8b3a35f916b5c.json
然后,我有这个代码打印三种不同的方式来获取该地址.
String userHash = "eac16c9fc481cb6825f8b3a35f916b5c";
String correctUrl = "https://www.gravatar.com/" + userHash + ".json";
Uri.Builder builder1 = Uri.parse(correctUrl).buildUpon();
Uri.Builder builder2 = new Uri.Builder()
.scheme("https")
.path("www.gravatar.com")
.appendPath(userHash + ".json");
Log.i("Correct URL", correctUrl);
Log.i("Builder 1 URL", builder1.toString());
Log.i("Builder 2 URL", builder2.toString());
Run Code Online (Sandbox Code Playgroud)
前两个打印很好,但第三个是我更喜欢使用的,但它不正确,因为你可以看到http:/www而不是http://www
I/Correct URL: https://www.gravatar.com/eac16c9fc481cb6825f8b3a35f916b5c.json
I/Builder 1 URL: https://www.gravatar.com/eac16c9fc481cb6825f8b3a35f916b5c.json
I/Builder 2 URL: https:/www.gravatar.com/eac16c9fc481cb6825f8b3a35f916b5c.json
Run Code Online (Sandbox Code Playgroud)
我正在使用API 23进行编译,并且我没有费心去尝试不同的API版本,因为我很困惑为什么这不起作用.
我正在尝试使用Android中的URI构建器来创建带变量的URL.我在Android中阅读过使用URI构建器或使用变量创建URL,但我不需要涉及一些我需要的符号.
我要创建的URL示例:
我想用变量代替ggscoord.我知道如何追加路径和查询参数......但我应该使用什么构建器方法用于%7C和| ?