Java 尝试在字符串中的每个元音前添加一个字符
我想在单词的每个元音前插入一个“ab” 例如,如果用户输入单词:fire 它必须改为:法比拉贝 但是我的代码只是在单词前面输入ab,比如:abfire。我怎样才能解决这个问题 以下是我目前的代码:Java 尝试在字符串中的每个元音前添加一个字符,java,loops,if-statement,methods,java.util.scanner,Java,Loops,If Statement,Methods,Java.util.scanner,我想在单词的每个元音前插入一个“ab” 例如,如果用户输入单词:fire 它必须改为:法比拉贝 但是我的代码只是在单词前面输入ab,比如:abfire。我怎样才能解决这个问题 以下是我目前的代码: import java.util.Scanner; public class Foothill { // class variables shared by more than one method String prompt; static String strUserRes
import java.util.Scanner;
public class Foothill
{
// class variables shared by more than one method
String prompt;
static String strUserResponse;
// main method
public static void main (String[] args)
{
giveInstructions();
getUserInput();
convertToTurkeyIrish();
vowelCounter();
}
public static String convertToTurkeyIrish()
{
String turkeyIrish = strUserResponse;
String turkeyIrish2;
turkeyIrish2 = "ab" + strUserResponse.replaceAll("(aeiouAEIOU)", "$1ab");
System.out.println("Word In Turkey Irish: " + turkeyIrish2);
return turkeyIrish;
}
public static void vowelCounter()
{
int vowel = 0;
strUserResponse.length();
char vowels;
vowels = ' ';
for (int j = 0; j <= strUserResponse.length() - 1 ; j++)
{
vowels = strUserResponse.charAt(j);
if ((vowels == 'a') || (vowels == 'A') || (vowels == 'e') || (vowel == 'E') || (vowel == 'i')|| (vowels == 'I') || (vowels == 'o') (vowels == 'O') || (vowel == 'u') || (vowels == 'u'))
{
System.out.println("Vowels in " + strUserResponse + ": " + vowel++);
}
}
}
}
import java.util.Scanner;
公共级山麓
{
//由多个方法共享的类变量
字符串提示;
静态串级响应;
//主要方法
公共静态void main(字符串[]args)
{
给出指令();
getUserInput();
convertToTurkeyIrish();
元音计数器();
}
公共静态字符串convertToTurkeyIrish()
{
字符串turkeyIrish=strUserResponse;
弦土耳其语2;
turkeyIrish2=“ab”+strUserResponse.replaceAll(“(aeiouAEIOU)”,“$1ab”);
System.out.println(“土耳其-爱尔兰语:“+turkeyIrish2”);
返回土耳其爱尔兰;
}
公共静态void元音计数器()
{
int元音=0;
strUserResponse.length();
字符元音;
元音='';
对于(int j=0;j您的正则表达式是错误的,替换字符串也是错误的。请尝试以下操作:
strUserResponse.replaceAll("([aeiouAEIOU])", "ab$1");
您的正则表达式错误,替换字符串也错误。请尝试以下操作:
strUserResponse.replaceAll("([aeiouAEIOU])", "ab$1");
将正则表达式更改为:
(?i)(a|e|i|o|u)
替换为:
ab$1
您当前的正则表达式是aeiouAEIOU
,它匹配一系列字符:“aeiouAEIOU”
测试它:
System.out.println("fire".replaceAll("(?i)(a|e|i|o|u)", "ab$1"));
// fabirabe
或者按照@amit的建议,您可以简单地使用字符类并编写[aeiou]
。请注意,我使用(?I)
指示正则表达式应不区分大小写。将正则表达式更改为:
(?i)(a|e|i|o|u)
替换为:
ab$1
您当前的正则表达式是aeiouAEIOU
,它匹配一系列字符:“aeiouAEIOU”
测试它:
System.out.println("fire".replaceAll("(?i)(a|e|i|o|u)", "ab$1"));
// fabirabe
或者按照@amit的建议,您可以简单地使用字符类并编写[aeiou]
。注意,我使用(?I)
来指示正则表达式应该不区分大小写。这里没有捕获组,那么$1
应该是什么?这里没有捕获组,那么$1
应该是什么?