首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >替换Strings

替换Strings
EN

Stack Overflow用户
提问于 2015-03-01 17:55:51
回答 1查看 59关注 0票数 1

我有一个函数来检查某个单词是否出现在一个特定的行中,然后用一个给定的字符包围它们。

上面的代码工作起来很有魅力,但是由于字符串数组中的单词“word”总是小写,所以单词也是小写的。我怎样才能解决这个问题?

投入:

代码语言:javascript
复制
BufferedReader in = "Hello, my name is John:";
char c = '*';
String [] words = {"hello","john"}; 

期望的输出:

代码语言:javascript
复制
BufferedWriter out = "*Hello*, my name is *John*:";

实际产出:

代码语言:javascript
复制
BufferedWriter out = "*hello*, my name is *john*";

守则:

代码语言:javascript
复制
public void replaceString(BufferedReader in, BufferedWriter out, char c, String[] words){

String line_in = in.readLine();

    while (line_in != null) {
        for (int j = 0; j < words.length; j++) {

            line_in = line_in.replaceAll("(?i)" + words[j], bold + words[j]
                    + bold);

        }

        out.write(line_in);
        out.newLine();
        line_in = in.readLine();

    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-01 17:58:59

使用

代码语言:javascript
复制
line_in.replaceAll("(?i)(" + words[j] + ")", bold + "$1" + bold);
//                      \________________/           \/
//                         capture word          reference it
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28796987

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档