我一直在研究一个随机字符串生成器,它在页面顶部显示字符串。那部分工作正常。但是在页面的底部我有一个超链接,将字符串添加到网址的末尾(基本上是google字符串)。我的问题是超链接在多字符串中的第一个单词后停止。例如,youtube.com/user/dude
工作正常,而youtube.com/user/lady gaga
官方则没有,因为超链接仅突出显示“youtube.com/user/lady”,其余部分仅为纯文字。
如何在不破坏屏幕顶部已显示的字符串的情况下包含所有这些内容? 谢谢!
这是我的超链接代码:
Resources res = getResources();
myString = res.getStringArray(R.array.myArray);
String q = myString[rgenerator.nextInt(myString.length)];
btn.setText("http://www.allmusic.com/search/artist/"+q);
以下是我的问题图片:
答案 0 :(得分:6)
使用URLEncoder.encode(String s, String charset)对您的查询字符串进行编码。
答案 1 :(得分:5)
使用URLEncoder
自动转义您的网址:
String text = URLEncoder.encode("The Raincoats", "UTF-8");
答案 2 :(得分:1)
myString = res.getStringArray(R.array.myArray);
String q = myString[rgenerator.nextInt(myString.length)];
q = q.replaceAll("\\s+", ""); // remove all whitespaces
btn.setText("http://www.allmusic.com/search/artist/"+q);
这应该可以解决问题。我用“”替换了所有的空格,你可以替换你想要的任何东西,也许是下划线“_”?
答案 3 :(得分:1)
用+
替换空格。应该这样做。例如,这有效:http://www.allmusic.com/search/artist/the+heavy
要做到这一点,你可以这样做:
q = q.replaceAll("\\s+", "+");