亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在不使用 String Buffer 類 replace() 方法的情況下替換字符串中的字符?

如何在不使用 String Buffer 類 replace() 方法的情況下替換字符串中的字符?

寶慕林4294392 2023-03-17 14:08:14
我需要使用指定字符串片段中的字符替換此 TextLine 中開始(包括)和結束(不包括,即索引 end-1 之前的字符將被替換)之間的字符的替換方法。我不能直接或間接使用 StringBuffer 類的 replace(int start, int end, String fragment) 方法。我正在嘗試制作 eLine.replace(0, 3, "abc"); 或者 eLine.replace(0, 3, "abc"); 工作。我試著做了一個類似StringBuffer Class的replace方法,但是沒有成功。我想不出另一種方法來進行這樣的替換,這就是我被卡住的原因。如果有其他方法,請給我一個示例或解決方案。public int length;public char[] characters;public class TextLineTester {  public static void main(String args[]) {      Scanner input = new Scanner(System.in);     System.out.println("Enter a line of text.");     String text = input.nextLine();     EditableTextLine eLine = new EditableTextLine(text);     Scanner strCharsInput = new Scanner(System.in);     System.out.println("Enter string of characters.");     String str = strCharsInput.nextLine();     eLine.replace(0, 3, "abc");     eline.replace(0, str.length(), "abc"); // suppose to replace all occurrences of string eLine with the string ”abc”and print the modified eLine     System.out.println(eLine.toString());  }  }public void replace(int start, int end, String fragment) {     if (end > length) {        end = length;     }     int fragmentLength = fragment.length();     int newLength = length + fragmentLength - (end - start);     ensureCapacityInternal(newLength);     System.arraycopy(characters, end, characters, start +                                            fragmentLength, length - end);     fragment.getChars(0,0, characters, start);     length = newLength;}public EditableTextLine(String line) { // creates EditableTextLine object   length = line.length();   characters = new char[DEFAULT_SIZE * 2];   characters = line.toCharArray();}public String toString() {   return "Characters: " + new String(characters);}}
查看完整描述

1 回答

?
拉莫斯之舞

TA貢獻1820條經驗 獲得超10個贊

對于采用任何字符串并進行替換的獨立方法,這將是最簡單的。


   public static String replace(String orig, int start, int end, String replace) {

      String front = orig.substring(0,start);

      String back = orig.substring(end);

      return front + replace + back;

   }

我故意省略了使用StringBuilder. 這應該很容易適應本土的“String”類。


查看完整回答
反對 回復 2023-03-17
  • 1 回答
  • 0 關注
  • 137 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號