Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.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 - Fatal编程技术网

一个方法的输出作为Java中另一个方法的输入返回?

一个方法的输出作为Java中另一个方法的输入返回?,java,Java,我正在创建一个程序,它向用户显示一个菜单,有四个选项,即输入一个字符串,显示时去掉空格,向后显示,以及退出。如何将字符串输入从EnterString方法传递到NoSpaces方法和DisplayBackward方法 我尝试了以下方法: public class StringMenu { public static String stringinput; public static String s; public String EnterString() {

我正在创建一个程序,它向用户显示一个菜单,有四个选项,即输入一个字符串,显示时去掉空格,向后显示,以及退出。如何将字符串输入从EnterString方法传递到NoSpaces方法和DisplayBackward方法

我尝试了以下方法:

public class StringMenu
{
    public static String stringinput;
    public static String s;

    public String EnterString() {
        System.out.print("Input a string: ");
        Scanner newstring = new Scanner(System.in);
        String stringinput = newstring.nextLine();
        return stringinput;
    }

    public void setstring(String stringinput){
        this.stringinput = stringinput;
    }

    public static void editString(String s){
        s.setstring(stringinput);
    }

    public String NoSpaces() {
        String stringinput2 = " ";
        editString(stringinput2);
        String enterfirst = "Enter a string first";
        if(stringinput2 != null){
            char[] Array = stringinput2.toCharArray();
            String nospaces = "";
            for (int n=0; n<Array.length; n++ )
            {
                if ((Array[n] != ' ') && (Array[n] != '\t'))
                    nospaces = nospaces + Array[n];
            }
            System.out.println(nospaces);
            return nospaces;
        }
        else
            System.out.println("Enter a string first");
            return enterfirst;
    }

    public void DisplayBackward() {
        String stringinput3 = " ";
        editString(stringinput3);
        if(stringinput3 != null) {
            char[] orig = stringinput3.toCharArray();
            String reverse="";
            int p = orig.length-1;
            for (int n=0; n<=p; p-- )
                reverse = reverse + orig[p];
            System.out.println(reverse);
        }
        else
            System.out.println("Enter a string first");
    }

    public static void Quit(){
        SimpleDateFormat formatter = new SimpleDateFormat("hh:mm:ss a dd/MM/yy");  
        Date date = new Date();   
        System.out.println("Your session has ended. The current time is " + (formatter.format(date)));  
    }

public static void main(String[] args) {
    StringMenu s = new StringMenu();
    int choice;
    do
    {
        System.out.print("\n============================\n");
        System.out.println("Enter the number of your choice: ");
        System.out.println("(1) Enter a string");
        System.out.println("(2) Display the string with all its spaces removed");
        System.out.println("(3) Display the string backward");
        System.out.println("(4) Quit");

        Scanner input = new Scanner(System.in);
        choice = input.nextInt();

        switch (choice) {
            case 1: 
                s.EnterString();
                break;
            case 2:
                s.NoSpaces();
                break;
            case 3: 
                s.DisplayBackward();
                break;
            case 4: 
                Quit();
                break;
            default: System.out.println("Enter numbers from 1 to 4 only");
            }
        }
        while (choice!=4);
    }
公共类字符串菜单
{
公共静态字符串输入;
公共静态字符串s;
公共字符串EnterString(){
System.out.print(“输入字符串:”);
Scanner newstring=新扫描仪(System.in);
String stringinput=newstring.nextLine();
返回字符串输入;
}
公共void设置字符串(字符串stringinput){
this.stringinput=stringinput;
}
公共静态void editString(字符串s){
s、 设置字符串(字符串输入);
}
公共字符串NoSpaces(){
字符串stringinput2=“”;
编辑字符串(stringinput2);
String enterfirst=“首先输入字符串”;
如果(stringinput2!=null){
char[]数组=stringinput2.toCharArray();
字符串nospaces=“”;
对于(int n=0;n如果第21行指向

public static void editString(String s){
    s.setstring(stringinput);
}
,错误消息非常明显。参数为字符串类型,字符串没有setstring方法

如果要调用setstring,方法定义至少应如下所示

public static void editString(StringMenu sm) { sm.setstring(stringinput); }
如果第21行指向

public static void editString(String s){
    s.setstring(stringinput);
}
,错误消息非常明显。参数为字符串类型,字符串没有setstring方法

如果要调用setstring,方法定义至少应如下所示

public static void editString(StringMenu sm) { sm.setstring(stringinput); }

只需创建一个变量并将返回值设置为创建的变量,然后将该变量作为要传递的方法的参数传递,那么该值将在刚才传递的方法中可访问。

只需创建一个变量并将返回值设置为创建的变量,然后将该变量作为t的参数传递您要传入的方法,则该值将在您刚刚传入的方法中可访问。

这是您的程序在经过所有修改后按预期运行的情况。 在IntellijIdea测试

public class StringMenu {

    private static String stringInput;

    public static void main(String[] args) {
        StringMenu s = new StringMenu();
        Scanner input = new Scanner(System.in);
        int choice;
        do {
            System.out.print("\n============================\n");
            System.out.println("Enter the number of your choice: ");
            System.out.println("(1) Enter a string");
            System.out.println("(2) Display the string with all its spaces removed");
            System.out.println("(3) Display the string backward");
            System.out.println("(4) Quit");
            choice = input.nextInt();
            switch (choice) {
                case 1:
                    System.out.println("You enter String -> " + s.enterString());
                    break;
                case 2:
                    System.out.println("string after Remove space -> " + s.noSpaces(stringInput));
                    break;
                case 3:
                    System.out.println("Backward string -> " + s.displayBackward(stringInput));
                    break;
                case 4:
                    s.Quit();
                    break;
                default:
                    System.out.println("Enter numbers from 1 to 4 only");
            }
        } while (choice != 4);
    }

    public String enterString() {
        System.out.print("Input a string: ");
        Scanner scanner = new Scanner(System.in);
        return stringInput = scanner.nextLine();
    }

    public String noSpaces(String stringInput) {
        if (stringInput == null) {
            stringInput = enterString();
        }
        char[] stringArray = stringInput.toCharArray();
        String noSpaces = "";
        for (int n = 0; n < stringArray.length; n++) {
            if ((stringArray[n] != ' ') && (stringArray[n] != '\t')) {
                noSpaces = noSpaces + stringArray[n];
            }
        }
        return noSpaces;
    }

    public String displayBackward(String stringInput) {
        String stringBackward = "";
        if (stringInput == null) {
            stringInput = enterString();
        }
        System.out.println("Original string ==>> " + stringInput);
        char[] charArray = stringInput.toCharArray();
        for (int i = charArray.length - 1; i >= 0; i--) {
            stringBackward = stringBackward + charArray[i];
        }
        return stringBackward;
    }

    public void Quit() {
        SimpleDateFormat formatter = new SimpleDateFormat("hh:mm:ss a dd/MM/yy");
        Date date = new Date();
        System.out.println("Your session has ended. The current time is " + (formatter.format(date)));
    }
}
公共类字符串菜单{
私有静态字符串输入;
公共静态void main(字符串[]args){
StringMenu s=新的StringMenu();
扫描仪输入=新扫描仪(System.in);
智力选择;
做{
System.out.print(“\n===========================================\n”);
System.out.println(“输入您选择的号码:”);
System.out.println(“(1)输入字符串”);
System.out.println(“(2)显示删除了所有空格的字符串”);
System.out.println(“(3)向后显示字符串”);
系统输出打印项次(“(4)退出”);
choice=input.nextInt();
开关(选择){
案例1:
System.out.println(“输入字符串->”+s.enterString());
打破
案例2:
System.out.println(“删除空格后的字符串->”+s.noSpaces(stringInput));
打破
案例3:
System.out.println(“向后字符串->”+s.displayBackward(stringInput));
打破
案例4:
s、 退出();
打破
违约:
System.out.println(“仅输入1到4之间的数字”);
}
}while(选项!=4);
}
公共字符串enterString(){
System.out.print(“输入字符串:”);
扫描仪=新的扫描仪(System.in);
返回stringInput=scanner.nextLine();
}
公共字符串noSpaces(stringstringinput){
if(stringInput==null){
stringInput=enterString();
}
char[]stringArray=stringInput.toCharArray();
字符串noSpaces=“”;
对于(int n=0;n>”+stringInput);
char[]charArray=stringInput.toCharArray();
对于(int i=charArray.length-1;i>=0;i--){
stringBackward=stringBackward+charArray[i];
}
向后返回;
}
公开作废退出(){
SimpleDataFormat格式化程序=新的SimpleDataFormat(“hh:mm:ss a dd/mm/yy”);
日期=新日期();
System.out.println(“您的会话已结束。当前时间为”+(formatter.format(date)));
}
}

这是您的程序在经过所有修改后按预期运行的情况。 在IntellijIdea测试

public class StringMenu {

    private static String stringInput;

    public static void main(String[] args) {
        StringMenu s = new StringMenu();
        Scanner input = new Scanner(System.in);
        int choice;
        do {
            System.out.print("\n============================\n");
            System.out.println("Enter the number of your choice: ");
            System.out.println("(1) Enter a string");
            System.out.println("(2) Display the string with all its spaces removed");
            System.out.println("(3) Display the string backward");
            System.out.println("(4) Quit");
            choice = input.nextInt();
            switch (choice) {
                case 1:
                    System.out.println("You enter String -> " + s.enterString());
                    break;
                case 2:
                    System.out.println("string after Remove space -> " + s.noSpaces(stringInput));
                    break;
                case 3:
                    System.out.println("Backward string -> " + s.displayBackward(stringInput));
                    break;
                case 4:
                    s.Quit();
                    break;
                default:
                    System.out.println("Enter numbers from 1 to 4 only");
            }
        } while (choice != 4);
    }

    public String enterString() {
        System.out.print("Input a string: ");
        Scanner scanner = new Scanner(System.in);
        return stringInput = scanner.nextLine();
    }

    public String noSpaces(String stringInput) {
        if (stringInput == null) {
            stringInput = enterString();
        }
        char[] stringArray = stringInput.toCharArray();
        String noSpaces = "";
        for (int n = 0; n < stringArray.length; n++) {
            if ((stringArray[n] != ' ') && (stringArray[n] != '\t')) {
                noSpaces = noSpaces + stringArray[n];
            }
        }
        return noSpaces;
    }

    public String displayBackward(String stringInput) {
        String stringBackward = "";
        if (stringInput == null) {
            stringInput = enterString();
        }
        System.out.println("Original string ==>> " + stringInput);
        char[] charArray = stringInput.toCharArray();
        for (int i = charArray.length - 1; i >= 0; i--) {
            stringBackward = stringBackward + charArray[i];
        }
        return stringBackward;
    }

    public void Quit() {
        SimpleDateFormat formatter = new SimpleDateFormat("hh:mm:ss a dd/MM/yy");
        Date date = new Date();
        System.out.println("Your session has ended. The current time is " + (formatter.format(date)));
    }
}
公共类字符串菜单{
私有静态字符串输入;
公共静态void main(字符串[]args){
StringMenu s=新的StringMenu();
扫描仪输入=新扫描仪(System.in);
智力选择;
做{
System.out.print(“\n===========================================\n”);
System.out.println(“输入您选择的号码:”);
System.out.println(“(1)输入字符串”);
System.out.println(“(2)显示删除了所有空格的字符串”);
System.out.println(“(3)向后显示字符串”);
系统输出打印项次(“(4)退出”);
choice=input.nextInt();
开关(选择){
案例1:
System.out.println(“输入字符串->”+s.enterString());
打破
案例2:
System.out.println(“删除空格后的字符串->”+s.noSpaces(stringInput));
打破
案例3: