2014-02-15 43 views
1

因此,對於作業,我應該創建一個程序,將每個字母加倍,並將輸入到掃描器中的每個短語的感嘆號加倍。這是我到目前爲止:替換掃描器字符串中的字符

import java.util.Scanner; 
public class DoubleLetters{ 
    public static void main(String[]args){ 
    Scanner scan = new Scanner(System.in); 
    System.out.println("Enter a statement"); 
    String x = scan.nextLine(); 
    String y = x.replace("! ","!!! "); 
    for(int j=0; j< x.length(); j++){ 
     System.out.print(y.charAt(j)); 
     System.out.print(y.charAt(j)); 
    } 
    } 
} 

加倍信件的工作,但不是三倍感嘆號。我試圖使用替換方法,它不起作用。請,任何幫助表示讚賞。

回答

0

只是if語句循環

if(y.charAt(j) == '!') { 
    System.out.print(y.charAt(j)); 
} 

內添加和刪除空白空間替換方法

String y = x.replace("!","!!!"); 
+0

這工作完美,謝謝! – user3312944

0

嘗試這種

String y = x.replace("!","!!!"); 

或該

for (char c : x.toCharArray()) { 
     System.out.print(c); 
     System.out.print(c); 
     if (c == '!') { 
      System.out.print(c); 
     } 
    } 
+0

我不應該能夠使用數組但並以某種方式使用該方法Character.isLetter(CH)(雖然我不一定要)我的老師建議,但我不知道是什麼方式 – user3312944

0

字符串轉換成陣列比做雙重,三重態和顯示。從左側開始讀取,並使用double和triplet條件更新字符數組移動到右側,最後顯示結果(字符數組)。

+0

我不認爲我被允許使用數組,但只有條件和我的教授建議使用以下方法(雖然我不必):Character.isLetter(ch)但我不知道在什麼方式 – user3312944

0

你可以在去所有的字符並追加到StringBuilder

String str = /* recieved from scanner */ 
StringBuidler builder = new StringBuilder(); 

for (char c : str.toCharArray()) { 
    // Any character needs to be included at least once: 
    builder.append(c); 

    // If it's a letter, you need another copy (total of 2) 
    if (Character.isLetter(c)) { 
     builder.append(c); 
    // If it's an excalmation mark, you need another two copies (total of 3) 
    } else if (c == '!') { 
     builder.append(c); 
     builder.append(c); 
    } 
} 

System.out.println(builder); 

System.out.print(y.charAt(j)); System.out.print(y.charAt(j)); }

0

嘗試follwing代碼,它將有效地工作,只要你喜歡,

import java.util.Scanner; 
public class DoubleLetters 
{ 
    public static void main(String[]args) 
    { 
    Scanner scan = new Scanner(System.in); 
    System.out.println("Enter a statement"); 
    String x = scan.nextLine(); 
    for(int j=0; j< x.length(); j++) 
    { 
    if(y.charAt(j)=='!') 
    System.out.println("!!!"); 
    else 
    { 
      System.out.print(y.charAt(j)); 
      System.out.print(y.charAt(j)); 
    } 
    } 
    } 
} 
0

爲u沒有帶成功替換 '!' 。所以對於另一種方法而不是替換,可以使用StringTokenizer將這個字符串標記爲這段代碼。並通過這個你可以添加你想要的東西在每個結束!你可以再加2個!!。代碼爲。

System.out.println("---- Split by comma '!' ------"); 
    String s = "My Name !is !Manmohan"; //scanner string 
    System.out.println("---- Split by comma ',' ------"); 
    StringTokenizer st2 = new StringTokenizer(s, "!"); 
    String now = ""; 
    while (st2.hasMoreElements()) { 
     now += st2.nextElement() + "!!!"; 
    } 

    System.out.println(now.substring(0, now.length() - 3)); 
      //op ... My Name !!!is !!!Manmohan