gpt4 book ai didi

java - 执行此功能的更好或更标准的方法是什么?

转载 作者:行者123 更新时间:2023-12-01 17:44:11 25 4
gpt4 key购买 nike

我是一名java初学者,在这个特定的问题中,我练习编写一个程序,将任何给定的字符串转换为小写字符串。 java中有没有更好的方法来实现这个目标(在设计方面)?

此外,“else”(在“else if”之后)如何捕获或等待我进行输入。不知怎的,这部分对我来说没有意义,尽管我实现了我想要的。输入中的“ans”值如何传输到整个循环并使用直到循环关闭?

经过多次尝试和失败,我对转换部分使用了单独的方法。我的第二个问题有点太复杂,无法研究。

import static java.lang.System.out;
import java.util.Scanner;

public class MyClass {

public static Scanner s = new Scanner(System.in);
public static String ans;

public static void main(String args[]) {
Conversion();

do {
ans = new String(s.nextLine());

if (ans.equalsIgnoreCase("Y")) {
Conversion();
} else if (ans.equalsIgnoreCase("N")) {
out.println("Thank you for using this program!");
break;
} else {
out.println("Invalid entry!");
out.println("Would you like to convert another string?\n(Please type 'Y' for yes, or 'N' for no.)");
}

} while (ans != "N");

}//END MAIN

public static void Conversion() {
out.println("Please enter string to be converted to lowercase: ");
String str = new String(s.nextLine());
out.println("Your new string is: " + str.toLowerCase());
out.println("Would you like to convert another string? (Y/N)");
}

}

最佳答案

我注意到一些问题; Conversion 看起来像一个类名(Java 命名约定为 conversion),并且 ans != "N" 使用 == 而不是 .equals - 并且不会忽略大小写 (!ans.equalsIgnoreCase("N"))。全局变量(例如static)不好(将Scanner传递给需要它的方法),并且静态导入 只是让代码更难以推理(在我看来)。您当前的循环并不真正遵循传统形式,我会提取提示和循环以将“另一个”转换为新方法,如果您必须打印感谢,我会在“主循环”之后这样做。比如,

public static void main(String args[]) {
Scanner sc = new Scanner(System.in);

do {
conversion(sc);
} while (another(sc));
System.out.println("Thank you for using this program!");
}

public static void conversion(Scanner s) {
System.out.println("Please enter string to be converted to lowercase: ");
System.out.printf("Your new string is: %s%n", s.nextLine().toLowerCase());
}

public static boolean another(Scanner s) {
while (true) {
System.out.println("Would you like to convert another string? (Y/N)");
String ans = s.nextLine();
if (ans.equalsIgnoreCase("Y")) {
return true;
} else if (ans.equalsIgnoreCase("N")) {
return false;
}
System.out.println("Invalid entry!");
System.out.println("(Please type 'Y' for yes, or 'N' for no.)");
}
}

关于java - 执行此功能的更好或更标准的方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57517316/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com