以下两种方法实际上发生了哪些步骤?我粗略地了解了这些方法的用途,但我不知道如何做。
方法1:
public String processDiscardedLetters(String name) {
return name.substring(0, 1)
+ name.substring(1).replaceAll("[aeihouwy]", "");
}
方法2:
public String processEquivalentLetters(String name) {
name = name.replaceAll("[aeiou]", "a");
name = name.replaceAll("[cgjkqsxyz]", "c");
name = name.replaceAll("[bfpvw]", "b");
name = name.replaceAll("[dt]", "d");
name = name.replaceAll("[mn]", "m");
return name;
}
答案 0 :(得分:0)
这两个示例都使用regular expressions来转换输入。
括号语法[]
是一个字符类,这意味着其中的任何字符都将与输入的一部分匹配。
特别是,使用[aeihouwy]
替换字符串将替换所有出现的替换字符串。
方法1 :保留第一个字母,无论它是什么,并删除字符串其余部分中出现的所有字符aeihouwy
。
更具体地说,方法1正在执行以下步骤。
subString
和0
的{{1}}方法来提取第一个字符,使用参数1
来提取从第二个字符开始并结束的字符串部分在字符串的末尾。1
消除字符串后半部分中的任何字符replaceAll
。方法2 :第一个例子
aeihouwy
答案 1 :(得分:0)
String的substring(startIndex, endIndex)
方法实际上从字符串数组的起始索引(包括)到结束索引(不包括)获取字符串(字符串是CharSequence
,这是一个“字符串数组”) 。如您所知,数组计数从0开始到N-1。substring(startIndex)
需要一个从index
开始到字符串结尾的字符串。
replaceAll(String regularExpression, String replacement)
方法将根据匹配的regular expression条件替换字符串。如果字符串的一部分与正则表达式条件匹配,则它将替换为替换字符串。
[
和]
中的正则表达式称为character classes。这些告诉正则表达式引擎只匹配这些字符中的1个。因此,如果您有[aeihouwy]
,则grey
之类的字词会匹配,因为它标识了gr [ey]
和gr [e]
y以及gre [y]
。因此,任何提到的单词都将替换为空白字符串""
。
我希望这会有所帮助。
答案 2 :(得分:0)
Example 1:
input: here are my
output: hr r m //replaced with '' (nothing)
Example 2 (first line):
input: cake is king xoxo
output: aaka as kang xoxo // replaced with 'a'
正如您所看到的,[]中的字符将替换为您编写为第二个参数的字符。
答案 3 :(得分:0)
阅读是基础。
This link是魔法! 它包含您问题的所有答案。 以下是Bonus Magic以及#34;滚动,如此困难"。
答案 4 :(得分:0)
如果您对如何在java方面完成感兴趣,可以在这里找到它们
对于子字符串:
替换所有