哪个先来?字符还是字符串?
Which comes first? The char or the String?
我在搜索答案时找到的大多数示例都嵌入在复杂的代码中。我只是想让一个问题程序知道接受对双答案(二进制?)问题的大写或小写回答,然后使用任一答案继续得出单一结果。在我的书中找到字符 class 方法之前,我尝试了一种 if/else 方法,但它只帮助了它的示例。
代码如下:
import java.util.Scanner;
public class MarriageQuiz
{
public static void main(String[] args)
{
char isMarried = 'M';
char isSingle = 'S';
String marStat;
System.out.print("Please enter your Marital Status (M or S) >> ");
marStat = input.nextLine();
if(marStat.isUppercase(isMarried | isSingle))
{
marStat = input.nextLine();
}
else if((marStat.isLowercase(isMarried | isSingle)))
{
marStat = marStat.toUpperCase(isMarried | isSingle);
}
System.out.print("You are " + marStat);
}
}
只需将所有输入转换为您期望的大小写(大写或小写,由您选择)。
尝试将角色转换为恰好已经存在的一种情况没有任何坏处。 toUppercase
方法在您不必要地调用它时不会报错。所以根本不需要测试大小写。
marStat = marStat.toUppercase() ;
if ( marStat.equals( 'S' ) {
… do Single stuff
} else if ( marStat.equals( 'M' ) {
… do Married stuff
} else {
… handle unexpected input
}
提示:如果 运行 此代码无数次,请考虑将 char
原语的使用替换为 Character
class 以避免 class 中讨论的自动装箱=14=].
isUppercase
和 isLowercase
根本不是那样工作的。而且您的代码毫无意义。
看起来你只想比较字符,但是你调用了 nextLine
which returns a String
。在 if 语句中,您又以某种方式要求用户输入 。我真的不知道你在这里做什么。
我猜你想要这样的东西:
char isMarried = 'M';
char isSingle = 'S';
char marStat;
System.out.print("Please enter your Marital Status (M or S) >> ");
marStat = input.nextLine().charAt(0);
if(marStat == 's' || marStat == 'S')
{
System.out.println("You are single!");
}
else if(marStat == 'm' || marStat == 'M')
{
System.out.println("You are married!");
}
我认为您没有完全理解编程的工作原理。
我在搜索答案时找到的大多数示例都嵌入在复杂的代码中。我只是想让一个问题程序知道接受对双答案(二进制?)问题的大写或小写回答,然后使用任一答案继续得出单一结果。在我的书中找到字符 class 方法之前,我尝试了一种 if/else 方法,但它只帮助了它的示例。
代码如下:
import java.util.Scanner;
public class MarriageQuiz
{
public static void main(String[] args)
{
char isMarried = 'M';
char isSingle = 'S';
String marStat;
System.out.print("Please enter your Marital Status (M or S) >> ");
marStat = input.nextLine();
if(marStat.isUppercase(isMarried | isSingle))
{
marStat = input.nextLine();
}
else if((marStat.isLowercase(isMarried | isSingle)))
{
marStat = marStat.toUpperCase(isMarried | isSingle);
}
System.out.print("You are " + marStat);
}
}
只需将所有输入转换为您期望的大小写(大写或小写,由您选择)。
尝试将角色转换为恰好已经存在的一种情况没有任何坏处。 toUppercase
方法在您不必要地调用它时不会报错。所以根本不需要测试大小写。
marStat = marStat.toUppercase() ;
if ( marStat.equals( 'S' ) {
… do Single stuff
} else if ( marStat.equals( 'M' ) {
… do Married stuff
} else {
… handle unexpected input
}
提示:如果 运行 此代码无数次,请考虑将 char
原语的使用替换为 Character
class 以避免 class 中讨论的自动装箱=14=].
isUppercase
和 isLowercase
根本不是那样工作的。而且您的代码毫无意义。
看起来你只想比较字符,但是你调用了 nextLine
which returns a String
。在 if 语句中,您又以某种方式要求用户输入 。我真的不知道你在这里做什么。
我猜你想要这样的东西:
char isMarried = 'M';
char isSingle = 'S';
char marStat;
System.out.print("Please enter your Marital Status (M or S) >> ");
marStat = input.nextLine().charAt(0);
if(marStat == 's' || marStat == 'S')
{
System.out.println("You are single!");
}
else if(marStat == 'm' || marStat == 'M')
{
System.out.println("You are married!");
}
我认为您没有完全理解编程的工作原理。