繁体   English   中英

如何用字符串替换字符?

[英]How do I replace a character with a string?

我需要输入一个包含单个*字符的字符串,然后输入第二个String。 *将被第二个字符串替换。 因此,例如,如果用户输入字符串“ d * g”和“ in”,则程序将输出ding。 原始字符串必须仅包含字母,大写或小写字母,空格和制表符以及单个*。 替换字符串可以是Java中的任何合法字符串。 如果第一个字符串不包含*,则输出“错误:否*”。 如果第一个字符串包含字母,空格或制表符之外的任何内容,则应打印“错误:不正确的字符”。 如果第一个字符串没有*,则不必输出不正确的字符,则仅输出“错误:否*”。

到目前为止,我有:

import java.io.*;
import static java.lang.System.*;

import java.util.Scanner;
import java.lang.Math;


class Main{

     public static void main (String str[]) throws IOException {
Scanner scan = new Scanner(System.in);

char letter;
int i;

  System.out.println("Enter the first String:");
String wc = scan.nextLine();
  System.out.println("Enter the replacement String:");
String replace = scan.nextLine();
String my_new_str = wc.replaceAll("*", replace);
for (i = 0; i < wc.length(); i++)
        {
          letter = wc.charAt(i);

          if (! (letter == '*')){
            System.out.println("Error: no *");}
          System.out.println(""+ my_new_str);







}

}
}

我相信您想要String.replace(CharSequence, CharSequence) (而不是需要正则表达式的replaceAll )。

String my_new_str = wc.replaceAll("*", replace);

应该

String my_new_str = wc.replace("*", replace);

您可以像测试

String wc = "d*g";
String replace = "in";
System.out.println(wc.replace("*", replace));

并获取(按要求)

ding

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM