0

在我尝试实施转换选项之前,我的程序运行良好。我要做的就是实现一个 U/u 或 L/l 输入选项,用于将字符串转换为大写或小写。请帮忙?

     import java.util.Scanner;

   public class CaseManipulation {


   public static void main(String[] args) {

       boolean up, low;
       char up[] = {'U', 'u'};
       char low[] = {'L', 'l'};

       Scanner scanner = new Scanner(System.in);
       System.out.print("Enter an input String: ");
       String inputString = scanner.nextLine();
       System.out.print("Case Conversion Option(U/u for uppercase, L/l for lowercase):");
       char caseoption = scanner.nextLine();

       if (caseoption == up[]) {
           System.out.println("Upper Case: " + toUpperCase(inputString));
       }  else if (caseoption == low[]) {
           System.out.println("Lower Case: " + toLowerCase(inputString));
       }

       //is_uppercase();


       //System.out.println("Upper Case: " + toUpperCase(inputString));
       //System.out.println("Lower Case: " + toLowerCase(inputString));

       }

       //public static boolean is_uppercase(char caseoption) {
      // if (char caseoption == ) {

         //  } 

   //}

       public static String toUpperCase(String inputString) {
       String result = "";
       for (int i = 0; i < inputString.length(); i++) {
           char currentChar = inputString.charAt(i);
           char currentCharToUpperCase = Character.toUpperCase(currentChar);
           result = result + currentCharToUpperCase;
       }
       return result;
   }

   public static String toLowerCase(String inputString) {
       String result = "";
       for (int i = 0; i < inputString.length(); i++) {
           char currentChar = inputString.charAt(i);
           char currentCharToLowerCase = Character.toLowerCase(currentChar);
           result = result + currentCharToLowerCase;
       }
       return result;
   }
}
4

1 回答 1

0

基本上,您的if条件是比较两个对象的对象/内存引用,而不是它们的值......

if (caseoption == up[]) {...

caseoption永远不可能等于up...

相反,您应该比较它们的内容...

if (caseoption == up[0] || caseoption == up[1]) {...

一个更简单的解决方案可能是将其转换caseoption为单个用例,例如......

if (Character.toUpperCase(caseoption) == 'U') {...
于 2013-10-09T03:12:20.210 回答