我正在尝试使用JAVA从字符串中获取URL

我正在尝试使用JAVA从字符串中获取URL,java,android,variables,Java,Android,Variables,我正在尝试使用JAVA从字符串中获取URL。但是我的变量在“Uri.parse”部分不起作用(变量中没有值)。请考虑我是初学者的编码< /p> 错误是:“无法为最终变量'result'赋值” 我的代码: showResultDialogue(result.getContents()); 既然您没有提供它为什么不起作用的信息,我就假设URL缺少http,因为您的regex与此不匹配,在这种情况下,我会这样做 编辑:你真的需要你的正则表达式吗?Android有一种内置的URL匹配方式 你可以在这

我正在尝试使用JAVA从字符串中获取URL。但是我的变量在“Uri.parse”部分不起作用(变量中没有值)。请考虑我是初学者的编码< /p> 错误是:“无法为最终变量'result'赋值”

我的代码:

showResultDialogue(result.getContents());


既然您没有提供它为什么不起作用的信息,我就假设URL缺少
http
,因为您的regex与此不匹配,在这种情况下,我会这样做

编辑:你真的需要你的正则表达式吗?Android有一种内置的URL匹配方式

你可以在这里找到文件

Patterns.WEB_URL.matcher(result.matches()

所以你的代码应该是这样的

if (Patterns.WEB_URL.matcher(result).matches()) {
    builder.setPositiveButton("Go", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int which) {
            Intent browserIntent = new Intent(
                Intent.ACTION_VIEW,
                Uri.parse(!result.startsWith("http://") && !result.startsWith("https://") ? "http://" + result : result)
            );
            startActivity(browserIntent);
        }
    });
}

什么是stacktrace错误?@SamzSakerz“结果”变量中没有任何内容如果有问题,您可以用错误日志编辑您的问题吗?并将您在结果中输入的内容发送给我。@SamzSakerz输入是“globalist.in/somthing.html”。正则表达式匹配成功,但未在browserI中打开url。请尝试我的建议,看看是否有效。输入为“globalist.in/somthing.html”。正则表达式匹配成功,但未在Browser中打开url无效。错误为:“无法为最终变量'result'赋值”
if (Patterns.WEB_URL.matcher(result).matches()) {
    builder.setPositiveButton("Go", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int which) {
            Intent browserIntent = new Intent(
                Intent.ACTION_VIEW,
                Uri.parse(!result.startsWith("http://") && !result.startsWith("https://") ? "http://" + result : result)
            );
            startActivity(browserIntent);
        }
    });
}