Java 如何修改字符串某一個位置的字符


Java 如何修改字符串某一個位置的字符

首先,String是字符串常量,常量對象一旦創建后是不可更改的。以下面代碼為例:

	String str = "123456";
	str += "78";
	System.out.println(str);

雖然最后會輸出"12345678",但實際處理過程是這樣的:JVM在str+="78"這一行執行時會創建一個新的對象str,並且把"123456" + "78"賦值給這個新對象,原來的str被JVM的垃圾回收機制銷毀掉了,所以,str實際上沒有被更改,現在的str並不是原來的str,而是新創建的一個對象。所以,String類型常量在Java中要進行操作的速度是比較慢的,需要不斷的創建新對象和銷毀舊對象。
而且String沒有提供替換某個位置字符的函數,僅僅提供了替換某些字符為新字符的函數。即replace和replaceAll。二者對應參數如下:

	String java.lang.String.replace(CharSequence target, CharSequence replacement)
	String java.lang.String.replaceAll(String regex, String replacement)

如何修改某個位置的字符

可以利用StringBuilder或者StringBuffer中的replace方法
StringBuilder和StringBuffer為字符串變量,對字符串處理的速度要比String類型快。

	String str = "123456";
	StringBuilder sb = new StringBuilder(str);
	sb.replace(0, 1, String.valueOf('T'));
	System.out.println(sb.toString());

最后輸出"T23456"
sb.repalce(start, end ,replacement)
sb會替換start(included)到end(excluded)的字符串為repalcement


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM