gpt4 book ai didi

java - 如何在MapReduce程序中替换输入字符串中的特殊字符

转载 作者:行者123 更新时间:2023-12-01 12:09:57 27 4
gpt4 key购买 nike

我可以替换普通java程序中的特殊字符。

这是我的java代码:

public class A {

public static void main(String[] args) {
String s = "This785($^#')\"";
System.out.println(s);
s=s.replaceAll("[^\\w\\s]", "");
System.out.println(s);

}

但是我在我的 map 缩减程序中尝试相同的操作,但这不起作用

 public static class Map extends MapReduceBase implements
Mapper<LongWritable, Text, Text, IntWritable> {

@Override
public void map(LongWritable key, Text value, OutputCollector<Text, IntWritable> output, Reporter reporter)
throws IOException {

String s = value.toString().replaceAll("\\w+\\s+","");
String[] words=s.split(" ");
for(String a:words){


output.collect(new Text(a),new IntWritable(1));
}
}

map 缩减程序的示例输入

   "This@#$ is$# word$%^ (Count)"
"This@#$ is$# word$%^ (Count)"

MapReduce程序的输出

 "This@#$   2
(Count)" 2
is$# 2
word$%^ 2

我是不是做错了什么,请帮帮我!

最佳答案

您的正则表达式已从 [^\\w\\s] 更改为 \\w+\\s+

此正则表达式的意思是,匹配一个或多个字母(a-z/A-Z)或数字(alpha numberic),后跟空格或制表符或换行符等,并将其替换为空字符串。在你的字符串中你有:

 "This@#$ is$# word$%^ (Count)"

您不满足大小写,因此不满足输出。您可以使用 $ 或 # 或 ^ 后跟一个空格,但不能使用字母数字字符后跟一个空格。

关于java - 如何在MapReduce程序中替换输入字符串中的特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27330368/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com