Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 尝试在字符串中的每个元音前添加一个字符_Java_Loops_If Statement_Methods_Java.util.scanner - Fatal编程技术网

Java 尝试在字符串中的每个元音前添加一个字符

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

我想在单词的每个元音前插入一个“ab”

例如,如果用户输入单词:fire 它必须改为:法比拉贝 但是我的代码只是在单词前面输入ab,比如:abfire。我怎样才能解决这个问题

以下是我目前的代码:

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
应该是什么?