【发布时间】:2019-10-15 12:25:13
【问题描述】:
我需要构建一个接收字符串的方法,例如“骑大象真的很有趣!”。并返回另一个类似的字符串,在这个例子中返回应该是:“e6t-r3s are r4y fun!”。 (因为 e-lephan-t 有 6 个中间字母,r-ide-s 有 3 个中间字母等等)
为了得到这个回报,我需要在每个单词中替换中间字母,以替换替换的字母数量,保持不变,所有内容都不是字母,而是每个单词的第一个和最后一个字母。
目前我尝试使用正则表达式将接收到的字符串拆分为单词,并将这些单词保存在字符串数组中,我还有另一个 int 数组,其中保存了中间字母的数量,但我没有不知道如何将数组和符号连接成正确的字符串以返回
String string="elephant-rides are really fun!";
String[] parts = string.split("[^a-zA-Z]");
int[] sizes = new int[parts.length];
int index=0;
for(String aux: parts)
{
sizes[index]= aux.length()-2;
System.out.println( sizes[index]);
index++;
}
【问题讨论】:
-
你为什么不直接用空格和破折号分割,然后取单词长度-2?