2011-07-17 261 views
0

我想用字符串中的'2'替換特定字符'8'。我想我已經正確設置了一切,當我在網上查找示例時,看起來應該如此。當我打印字符串時,就像我輸入字符串一樣。要運行它,用「80802」或類似的輸入測試它。謝謝!字符串替換功能不正確替換字符 - Java

import java.util.Scanner; 

class PhoneNumber { 

    public static void main(String[] args) { 

     String number = null; 

     Scanner scan = new Scanner(System.in); 

     // Prompt the user for a telephone number 
     System.out.print("Enter your telephone number: "); 

     // Input the user's name 
     number = scan.nextLine(); 

     // Replace the relevant letters with numbers 
     number.replace('8', '2'); 

     System.out.println("Your number is: " + number); 

    } 
} 

回答

6

一個常見的錯誤...你想:

number = number.replace('8', '2'); 

String.replace()不會改變字符串,因爲Strings是不可變的(它們無法更改)。相反,這種方法返回一個新的字符串與計算值。

+0

啊。所以這只是創建一個8的2作爲新的字符串,並重新分配數量? –

+0

完美的作品,非常有意義!非常感謝你,我很高興知道這是一個常見的錯誤= x –

2

number.replace()返回一個新的字符串。它不會改變`數字'。

+0

謝謝。我很感激。 –

0

number.replace('8','2');返回正確的字符串,它不會修改數字。要獲得所需的功能,您必須鍵入 number = number.replace('8','2');

public static void main(String[] args) { 

    String number = null; 

    Scanner scan = new Scanner(System.in); 

    // Prompt the user for a telephone number 
    System.out.print("Enter your telephone number: "); 

    // Input the user's name 
    number = scan.nextLine(); 

    // Replace the relevant letters with numbers 
    number = number.replace('8', '2'); 

    System.out.println("Your number is: " + number); 

} 

希望這會有所幫助。

+0

另一位用戶首先回答,但確實有幫助!謝謝! –