java String 替換

來源:互聯網
上載者:User

java 的String, StringBuffer都沒有提供子字串替換函數,要實現該功能必須自己編寫函數以下是兩種實現方法:方法1, 使用正則替換(其實沒真正用正則,函數compile的參數Pattern.LITERA使Regex字串只作為字面值來對待)。

import java.util.regex.*;

public class test{

 public static void main(String[] args){

String s="My name is xinyu!";

replaceFromString(s,"name","nickname");

System.out.println(s);

 }

public static void replaceFromString(String string1,String string2,String string3) {

String newString = Pattern.compile(string2, Pattern.LITERAL).matcher(string1).replaceAll(string3);

System.out.println(newString);

}

}

方法2:(使用String的indexOf尋找子串,然後把原串前面的內容和替換串添加到StringBuffer中,只到尋找完原串)

/**

 *@author Hans Bergsten, Gefion software (www.gefionsoftware.com)

*/

 public class StringUtils {

 /** * Returns a String with all occurrences of the String from * replaced by the String to.

* * @return The new String */

 public static String replaceInString(String in, String from, String to) {

StringBuffer sb = new StringBuffer(in.length() * 2);

String posString = in.toLowerCase();

String cmpString = from.toLowerCase();

int i = 0;

boolean done = false;

while (i < in.length() && !done) {

 int start = posString.indexOf(cmpString, i);

 if (start == -1) {

done = true;

} else {

sb.append(in.substring(i, start) + to);

 i = start + from.length();

}

}

 if (i < in.length()) {

 sb.append(in.substring(i));

}

return sb.toString();

}

}

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.