1. 程式人生 > >JAVA 刪除字串中指定子字串

JAVA 刪除字串中指定子字串

(1)從鍵盤迴圈錄入錄入一個字串,輸入"end"表示結束
(2)定義一個方法
        public Object[] deleteSubString(String str1,String str2) {}
(3)方法功能描述:從str1中刪除所有的str2,並返回刪除後的結果,返回結果為Object[]陣列
        * 該陣列的第一個元素為刪除所有的str2後的最終的字串
        * 該陣列的第二個元素為刪除的str2的個數        

鍵盤輸入就不寫了。

實現思路:    

    將str1轉為StringBuffer,因不確定str2出現次數,要用一個while迴圈來做。迴圈題內部使用StringBuffer的indexOf(str2)方法獲得在str2在str1中出現的位置index,如果index為-1則退出迴圈。確認index後用str1.delete方法刪除從index開始到index+str2長度的子字串,並記錄刪除次數。

最後將操作完的字串,與刪除次數記錄到返回的Object陣列中。

程式碼如下:

public class Demo1 {

	public static void main(String[] args) {

		String str1 = "abc123def123asdkfjl123";
		String str2 = "123";
		Demo1 d = new Demo1();
		Object[] result = d.deleteSubString(str1, str2);
		System.out.println("刪除字串後:"+result[0]);
		System.out.println("刪除了" +result[1] + "次");
	}
	
	
	public Object[] deleteSubString(String str1,String str2) {
		StringBuffer sb = new StringBuffer(str1);
		int delCount = 0;
		Object[] obj = new Object[2];

		while (true) {
			int index = sb.indexOf(str2);
			if(index == -1) {
				break;
			}
			sb.delete(index, index+str2.length());
			delCount++;
			
		}
		if(delCount!=0) {
			obj[0] = sb.toString();
			obj[1] = delCount;
		}else {
			//不存在返回-1
			obj[0] = -1;
			obj[1] = -1;
		}
		
		return obj;
	}
	

}