這就是我所擁有的,如果有人能給我一些關于該怎么做的想法,那就太好了。我認為采用索引并計算有多少個值在一起會有所幫助,但我不確定如何實作。isVowel 是一種輔助方法,用于確定字符是否為元音。
public static String doubleVowelsMaybe(String s)
{
int run =0;
String n = "";
for(int i = 0; i< s.length(); i)
{
char k = s.charAt(i);
if(isVowel(k))
{
}
if(run == 1)
{
n = n s.substring(i, i 1) s.substring(i, i 1);
run=0;
}
else
{
n = n s.substring(i, i 1);
run= 0;
}
}
return n;
uj5u.com熱心網友回復:
大多數像這樣的簡單字串操作任務都可以使用regex輕松完成。這是一個單線:
public static String doubleVowelsMaybe(String s) {
return s.replaceAll("(?<![aeiou])([aeiou])(?![aeiou])", "$1$1");
}
正則運算式的作業原理如下:
(?<![aeiou])是一個否定的lookbehind,所以它只在字符前面沒有元音時才匹配。([aeiou])匹配單個元音,并將其捕獲到第 1 組。(?![aeiou])是一個否定的前瞻,所以它只在字符后面沒有元音時才匹配。- 替換
$1$1意味著與組號 1(即單元音字符)匹配的任何內容的兩個副本。
uj5u.com熱心網友回復:
import java.util.*;
class Hello {
public static void main(String[] args) {
String abc = "beautiful";
String n = "";
int i = 0;
char[] abcchar = abc.toCharArray();
HashSet<Character> hs = new HashSet<>();
hs.add('a');
hs.add('e');
hs.add('i');
hs.add('o');
hs.add('u');
while (i < abcchar.length) {
if (i 1 < abcchar.length && hs.contains(abcchar[i]) && !hs.contains(abcchar[i 1])) {
n = n abc.substring(i, i 1) abc.substring(i, i 1);
} else {
while (hs.contains(abcchar[i])) {
n = n abc.substring(i, i 1);
i ;
}
n = n abc.substring(i, i 1);
}
i ;
}
System.out.print(n);
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/310868.html
標籤:爪哇
上一篇:物件嵌套減少或映射為一個物件
