0

我通过 getWebsite() 从 bean 获取爬取的网站。我有时会得到网站http://www.stackoverflow.com,有时会得到http://stackoverflow.com。我的问题是我想用“info@st​​ackoverflow.com”替换 setEmail() 到 bean 而不是那个。是否可以借助 substring 和 replaceAll 方法?

我在下面尝试了自己

    String s=str.substring(0,11);
    System.out.println("String s (0,11) :"+s);
    String string=str.substring(0,7);
    System.out.println("string  (0,7):"+string);
    String name=str.substring(11);
    String name1=str.substring(7);
    System.out.println("name  :"+name);
    boolean b=((!(s.length()==11)) || (string.length()==7))? true : ((!(string.length()==7)) || (s.length()==11))? false : true ;
    System.out.println(b);
    if(b==true)
    {
        System.out.println("condition TRUE");
        String replaceString=string.replaceAll(string,"info@");
        System.out.println("replaceString  :"+replaceString+name1);
    }
    if(b==false) 
    {
        System.out.println("condition FALSE");
        String replaceString=s.replaceAll(s,"info@");
        System.out.println("replaceString  :"+replaceString+name);
    }
4

3 回答 3

0

好的,不要给自己带来困难,只需将字符串中的http://或其他可能的模式替换为. 建议使用正则表达式str.replaceAll()info@

String str = "http://www.stackoverflow.com";

str = str.replaceAll("http:\\/\\/(www\\.)?","info@");
System.out.println(str);

http://rextester.com/SJD79549

那么我的问题是?你想做什么?

于 2012-12-30T12:41:23.397 回答
0

一个例子

String orig = "Hello World!";

String repl = orig.substring(6, 11); // "World"

String newstr = orig.replaceAll(repl, "user1937829"); // Hello user1937829!

在你的情况下,你不需要http://(www)

String newstr = orig.replaceAll("www", "").replaceAll("http://", "info@");

newstr将等于info@stackoverflow.comif origis http://www.stackoverflow.comor http://stackoverflow.com

希望这就是你想要的。

于 2012-12-30T12:44:37.187 回答
0

您需要在替换函数中使用正则表达式

String str1= "http://www.stackoverflow.com";
String str2 = "http://stackoverflow.com";
System.out.println(str1.replaceAll("http:\\/\\/(www\\.)?","info@"));
System.out.println(str2.replaceAll("http:\\/\\/(www\\.)?","info@"));
于 2012-12-30T12:44:41.230 回答