为什么会出现与java方法相关的错误?

为什么会出现与java方法相关的错误?,java,string,methods,replace,char,Java,String,Methods,Replace,Char,初学者在这里寻找简单的“简化”回答,因为我仍然习惯于一般的方法和java 在我的程序中,我试图从至少4个字符的字符串中删除用户以前在以前的方法中输入的特定字母字符(例如charInput='f')(例如,“狐狸在冷冻食品中意外冻结”),从而生成一个新字符串(例如stringInput=“oxes anciully Rezed In rozen ood”)。为了做到这一点,我四处搜索,所以我尝试替换 (例如,stringInput=stringInput.replace(charInput,“”)

初学者在这里寻找简单的“简化”回答,因为我仍然习惯于一般的方法和java

在我的程序中,我试图从至少4个字符的字符串中删除用户以前在以前的方法中输入的特定字母字符(例如charInput='f')(例如,“狐狸在冷冻食品中意外冻结”),从而生成一个新字符串(例如stringInput=“oxes anciully Rezed In rozen ood”)。为了做到这一点,我四处搜索,所以我尝试替换 (例如,stringInput=stringInput.replace(charInput,“”)

不幸的是,我遇到了以下错误:

The method replace(char, char) in the type String is not applicable for the arguments (char, String).
我尝试将用户输入的字符转换为字符串,看看这是否有帮助,但没有任何区别

有人能解释一下这里发生了什么(非常简单)?还有一个可能的解决方法?谢谢

import java.util.*;

public class Foothill {
    // main method
    public static void main(String[] args) {
        char keyCharacter = getKeyCharacter();
        String theString = getString();
        maskCharacter(theString, keyCharacter);
        countKey(theString, keyCharacter);          
        removeCharacter(theString, keyCharacter);
    }

    // get keyCharacter
    public static char getKeyCharacter() {
        Scanner input = new Scanner(System.in);
        String firstPrompt, strKeyCharacter;
        char keyCharacter;

        do {
            firstPrompt = "Please enter a SINGLE character to act as key: ";
            System.out.print(firstPrompt);
            strKeyCharacter = input.nextLine();
            keyCharacter = strKeyCharacter.charAt(0);

            if (keyCharacter == 'a' || keyCharacter == 'b'
                    || keyCharacter == 'c' || keyCharacter == 'd'
                    || keyCharacter == 'e' || keyCharacter == 'f'
                    || keyCharacter == 'g' || keyCharacter == 'h'
                    || keyCharacter == 'i' || keyCharacter == 'j'
                    || keyCharacter == 'k' || keyCharacter == 'l'
                    || keyCharacter == 'm' || keyCharacter == 'n'
                    || keyCharacter == 'o' || keyCharacter == 'p'
                    || keyCharacter == 'q' || keyCharacter == 'r'
                    || keyCharacter == 's' || keyCharacter == 't'
                    || keyCharacter == 'u' || keyCharacter == 'v'
                    || keyCharacter == 'w' || keyCharacter == 'x'
                    || keyCharacter == 'y' || keyCharacter == 'z') {

                System.out.println("You entered: " + keyCharacter);
            }

        } while (keyCharacter != 'a' && keyCharacter != 'b'
                && keyCharacter != 'c' && keyCharacter != 'd'
                && keyCharacter != 'e' && keyCharacter != 'f'
                && keyCharacter != 'g' && keyCharacter != 'h'
                && keyCharacter != 'i' && keyCharacter != 'j'
                && keyCharacter != 'k' && keyCharacter != 'l'
                && keyCharacter != 'm' && keyCharacter != 'n'
                && keyCharacter != 'o' && keyCharacter != 'p'
                && keyCharacter != 'q' && keyCharacter != 'r'
                && keyCharacter != 's' && keyCharacter != 't'
                && keyCharacter != 'u' && keyCharacter != 'v'
                && keyCharacter != 'w' && keyCharacter != 'x'
                && keyCharacter != 'y' && keyCharacter != 'z');

        input.close();
        return keyCharacter;
    }

    // declare final = 4 to be constant
    public static final int minimumLength = 4;

    // get theString
    public static String getString() {
        Scanner input = new Scanner(System.in);
        String secondPrompt, theString;
        do {
            secondPrompt = "Please enter a phrase or sentence >= 4: ";
            System.out.print(secondPrompt);
            theString = input.next();
        } while (theString.length() < minimumLength || theString == null
                || theString.length() == 0);
        input.close();
        return theString;
    }
    // mask keyCharacter with $
    public static String maskCharacter(String theString, char keyCharacter) {
        theString = theString.replace(keyCharacter, '$');
        System.out.println("String with " + " '" + keyCharacter + "' " + " masked.");
        System.out.println(theString);
        return theString;
    }
    //count number of times keyCharacter occurs in theString
    public static void countKey(String theString, char keyCharacter) {
        int countChar = 0;
        for (int charTimes = 0; charTimes <theString.length(); charTimes++) {
            if (theString.charAt(charTimes) == keyCharacter) {
                countChar++;
            }
        }
        System.out.println( "It occurs " + countChar + " times.");
        return;    
    }
    // remove keyCharacter from theString
    public static void removeCharacter(String theString, char keyCharacter){
        //error line for below line            
        theString = theString.replace(keyCharacter, ""); 
        /*error line above: The method replace(char, char) in the type String is not applicable for the arguments (char, String)*/
        System.out.println("String with " + "'" + keyCharacter + "' removed:" +  '\n');
        System.out.println(theString)
        return;
    }
}
import java.util.*;
公共级山麓{
//主要方法
公共静态void main(字符串[]args){
char keyCharacter=getKeyCharacter();
String theString=getString();
maskCharacter(字符串,关键字符);
countKey(字符串,keyCharacter);
removeCharacter(字符串,键字符);
}
//获取关键字符
公共静态字符getKeyCharacter(){
扫描仪输入=新扫描仪(System.in);
字符串firstPrompt,strKeyCharacter;
字符键字符;
做{
firstPrompt=“请输入一个字符作为键:”;
系统输出打印(第一次提示);
strKeyCharacter=input.nextLine();
keyCharacter=strKeyCharacter.charAt(0);
如果(keyCharacter='a'| | keyCharacter=='b'
||keyCharacter=='c'| | keyCharacter=='d'
||keyCharacter=='e'| | keyCharacter=='f'
||keyCharacter=='g'| | keyCharacter=='h'
||keyCharacter=='i'| | keyCharacter=='j'
||keyCharacter=='k'| | keyCharacter=='l'
||keyCharacter=='m'| | keyCharacter=='n'
||keyCharacter='o'| | keyCharacter=='p'
||keyCharacter=='q'| | keyCharacter=='r'
||keyCharacter='s'| | keyCharacter=='t'
||keyCharacter=='u'| | keyCharacter=='v'
||keyCharacter=='w'| | keyCharacter=='x'
||keyCharacter=='y'| | keyCharacter=='z'){
System.out.println(“您输入:“+keyCharacter”);
}
}while(keyCharacter!=“a”&&keyCharacter!=“b”
&&keyCharacter!=“c”&&keyCharacter!=“d”
&&关键字字符!='e'&&keyCharacter!='f'
&&keyCharacter!=“g”&&keyCharacter!=“h”
&&keyCharacter!='i'&&keyCharacter!='j'
&&keyCharacter!='k'&&keyCharacter!='l'
&&keyCharacter!='m'&&keyCharacter!='n'
&&键字符!=“o”&&keyCharacter!=“p”
&&keyCharacter!='q'&&keyCharacter!='r'
&&keyCharacter!='s'&&keyCharacter!='t'
&&keyCharacter!='u'&&keyCharacter!='v'
&&keyCharacter!='w'&&keyCharacter!='x'
&&keyCharacter!='y'&&keyCharacter!='z');
input.close();
返回键字符;
}
//将final=4声明为常量
公共静态最终int最小长度=4;
//获取字符串
公共静态字符串getString(){
扫描仪输入=新扫描仪(System.in);
字符串第二个提示符,字符串;
做{
secondPrompt=“请输入短语或句子>=4:”;
系统输出打印(第二次提示);
字符串=input.next();
}while(theString.length()keyCharacter
是一个字符,
表示
string
。所以这样写吧

 theString = theString.replaceAll(""+keyCharacter, ""); //going to replace all occurances of given string

之间使用
空格

  theString = theString.replace(keyCharacter,' '); 
其他错误

System.out.println(字符串)
在此处使用分号

maskCharacter
countKey
方法

theString.replace(keyCharacter, ""); 
应该是

theString.replace(keyCharacter, ' '); 
或者你打电话

theString.replaceAll(""+keyCharacter, ""); 
但对于未来:错误消息中明确指出了问题:


替换(char,char)
(您需要2个char参数)
不适用于参数(char,String)
(您有一个char和一个String作为参数-->您需要更改第二个参数…或使用其他方法)

有多个编译时错误,我将它们列为:

  • maskCharacter(字符串,键字符);
    方法尚未定义
  • countKey(字符串,keyCharacter);
    方法尚未定义
  • System.out.println(字符串)
    您错过了
    分号
  • String.replace(keyCharacter,”);
    这是因为没有定义String.replace(char,String)方法
  • 这里的键是
    表示java中的空字符串
    ,您应该使用
    作为空格字符

    =========================

    同意拉尔斯的建议

    我们
    theString.replace(keyCharacter, ' '); 
    
    theString.replaceAll(""+keyCharacter, "");