阅读用户的一段话,用java替换特定的单词
我们如何使用Java编写程序来读取用户的段落,并将向量中提到的特定单词替换为以下格式,即 例如,单词阅读用户的一段话,用java替换特定的单词,java,Java,我们如何使用Java编写程序来读取用户的段落,并将向量中提到的特定单词替换为以下格式,即 例如,单词Happy被简化为H**** 任何帮助都将受到感谢 import java.io.*; import java.util.*; class replaceString { public static String putStars(String str) { char first_char = str.charAt(0); String ans =
Happy
被简化为H****
任何帮助都将受到感谢
import java.io.*;
import java.util.*;
class replaceString {
public static String putStars(String str) {
char first_char = str.charAt(0);
String ans = new String();
ans = String.valueOf(first_char);
for(int i = 1;i < str.length(); ++i ) {
ans = ans + "*";
}
return ans;
}
public static String replaceWords(String str, Vector<String> v1) {
String[] words = str.split("\\W+"); //split across all types of punctuation
String ansString = new String();
for(String to_be_replaced : words) {
boolean found = false;
for(String to_replace_with : v1) {
if(to_be_replaced.equals(to_replace_with)) {
//System.out.println("in");
ansString = ansString +putStars(to_be_replaced) + " ";
found = true;
}
}
if(found == false) {
ansString = ansString + to_be_replaced + " ";
}
}
return ansString;
}
public static String replaceWords1(String str, Vector<String> v1) {
for(String currStr : v1) {
str.replace(str, );
}
return ansString;
}
public static void main(String args[])throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Enter the paragraph that you would like to edit ");
String s = br.readLine();
// Let us assume some strings in our very own vector
Vector<String> v1 = new Vector<String>();
v1.addElement("Hello");
v1.addElement("Hi");
v1.addElement("Heya");
v1.addElement("Howdy");
v1.addElement("Howu");
String ans = replaceWords(s, v1);
System.out.println("Paragraph after replacement becomes\n\n"+ ans);
}
}
import java.io.*;
导入java.util.*;
类替换字符串{
公共静态字符串putStars(字符串str){
char first_char=str.charAt(0);
字符串ans=新字符串();
ans=字符串.valueOf(第一个字符);
对于(int i=1;i
这是我当前的代码,但工作不正常请尝试类似的方法,使用包含替换规则的映射:
String input; //input string
Map<String,String> mapReplace = new HashMap<String,String>();
mapReplace.put("Hello","H****");
Iterator<String> keys = mapReplace.keySet().iterator();
while(keys.hasNext()){
String key = keys.next();
input = input.replace(input, mapReplace.get(key));
}
字符串输入//输入字符串
Map mapReplace=新建HashMap();
maprelace.put(“你好”,“H****”);
迭代器键=mapReplace.keySet().Iterator();
while(keys.hasNext()){
String key=keys.next();
input=input.replace(输入,mapReplace.get(键));
}
使用包含替换规则的映射尝试类似操作:
String input; //input string
Map<String,String> mapReplace = new HashMap<String,String>();
mapReplace.put("Hello","H****");
Iterator<String> keys = mapReplace.keySet().iterator();
while(keys.hasNext()){
String key = keys.next();
input = input.replace(input, mapReplace.get(key));
}
字符串输入//输入字符串
Map mapReplace=新建HashMap();
maprelace.put(“你好”,“H****”);
迭代器键=mapReplace.keySet().Iterator();
while(keys.hasNext()){
String key=keys.next();
input=input.replace(输入,mapReplace.get(键));
}
可能还有其他的可能性,但这里有一个我所基于的例子:
String [] words = {"appy", "eya", "dy"};
向量
,我建议您创建一个列表
(数组列表
),我们可以这样做:
List <String> wordsToReplace = Arrays.asList(words);
我将以更好、更简单的方式解释每个注释(1)、(2)、(3)的作用:
- (1) 如链接答案所示,他们使用
regex命令匹配整个单词,但在本例中,我们使用它匹配部分单词,而不是整个单词,因此这里不需要它\b
- (2) 只有找到匹配项,我们才能在
中填入StringBuilder
字符。。。如果我们不这样做,我们将得到:*
而不是H*
对于H****
单词,这样我们可以确保Happy
列表中每个单词的
数量正确*
- (3) 我们在
中替换StringBuilder
总数的匹配项,以便获得正确的输出*
H****
H***
How**?
How**? My friend lives in Pomp*** and every time I see her I say "H***" to her, she is very h****
可能还有其他的可能性,但我举了一个例子:
String [] words = {"appy", "eya", "dy"};
向量
,我建议您创建一个列表
(数组列表
),我们可以这样做:
List <String> wordsToReplace = Arrays.asList(words);
我将以更好、更简单的方式解释每个注释(1)、(2)、(3)的作用:
- (1) 如链接答案所示,他们使用
regex命令匹配整个单词,但在本例中,我们使用它匹配部分单词,而不是整个单词,因此这里不需要它\b
- (2) 只有找到匹配项,我们才能在
中填入StringBuilder
字符。。。如果我们不这样做,我们将得到:*
而不是H*
对于H****
单词,这样我们可以确保Happy
列表中每个单词的
数量正确*
- (3) 我们在
中替换StringBuilder
总数的匹配项,以便获得正确的输出*
H****
H***
How**?
How**? My friend lives in Pomp*** and every time I see her I say "H***" to her, she is very h****
迭代输入段落中的单词(
Scanner
及其.next()
方法),检查它们是否在向量中,如果是,请将它们替换为连接到单词长度减去一个星号的第一个字符。欢迎使用Stack Overflow,请阅读并在表单中显示您的努力。这不是一个免费的编码服务,而是一个问答网站,在那里你需要问一些具体的问题。实际上,你的问题太宽泛,因为它缺乏研究/努力来解决它