2014-02-15 38 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