如何使用Java中的方法在参数中将字符串中的单词大写?

问题描述 投票:-2回答:3

我正在研究一种方法,该方法返回一个字符串并接受两个字符串参数。这些字符串参数之一将是一个句子,另一个将是我想要用另一个参数的所有大写字母表示的单词。

我的说明如下:

[方法capitalizeMatches,它接受两个参数:String类型的干草堆和String类型的针。

[它返回一个字符串,在该字符串中,大海捞针中大多数出现的针被大写的针替换。

例如,capitalizeMatches(“英寸,生命是一英寸。围场,是生活的辛苦。”,“码”)→英寸,生命是一英寸。 YARD by YARD,生活艰辛。

替换全部为小写字母(码)和仅首字母大写的码(码)。>>

允许针头出现在其他字词内(shipYARD)。

无论如何,到目前为止我在哪里。下面,我解释我的问题/错误。帮帮我。

public static String capitalizeMatches(String haystack, String needle)
{
  String update = "";
  needle = needle.toUpperCase();
  String words[] = haystack.split(" ");

for(int i = 0; i < words.length(); i++)
{
  String word = words[i]; //Exception takes place somewhere here... 
  if(word.equalsIgnoreCase(needle))
  {
    word = word.toUpperCase();
  }
  update += word;
  update += " ";
}
return update;
}

如果可以,我想远离数组,但是如果这是解决此问题的唯一方法,我会接受。

我得到的输出只有它一次保留资本。我需要它永远是资本。

输出:英寸,生命是一英寸。围场堆场,生活艰难。

需要:英寸,生命是肚带。 YARD by YARD,生活艰辛。

我正在研究一种方法,该方法返回一个字符串并接受两个字符串参数。这些字符串参数中的一个将是一个句子,另一个将是我在所有大写字母中都想要的单词...

java string methods return
3个回答
1
投票

replaceAll方法使用Pattern class对词进行正则表达式搜索,然后将其替换为另一个词。


1
投票

在for循环中,您需要更改条件。不超过haystack的字符长度,但不超过words中的“字数”:


0
投票

我感谢@WJS为我解决了该解决方案。我保持它非常基本和简短。解决方法是>

public static String capitalizeMatches(String haystack, String needle)
{
   return  haystack.replaceAll("(?i)" +needle, needle.toUpperCase());
}
© www.soinside.com 2019 - 2024. All rights reserved.