JAVA 刪除字串中指定子字串
阿新 • • 發佈:2019-02-06
(1)從鍵盤迴圈錄入錄入一個字串,輸入"end"表示結束
(2)定義一個方法
public Object[] deleteSubString(String str1,String str2) {}
(3)方法功能描述:從str1中刪除所有的str2,並返回刪除後的結果,返回結果為Object[]陣列
* 該陣列的第一個元素為刪除所有的str2後的最終的字串
* 該陣列的第二個元素為刪除的str2的個數
(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; } }