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