2016-11-25 136 views
-3

我想让我的程序写出用字样输入的数字。例如。 52 =五十二。 我在这里做错了什么? 它不想接受的话,但我不能改变字符串的变量,所以我坚持!在Java中使用switch语句时遇到问题

import javax.swing.*; 

public class Switch 
{ 

public static void main (String [] args) 
{ 

int number = Integer.parseInt (JOptionPane.showInputDialog("Type in a number between 0 - 100 :")); 

int num1 = 0; 
int num2 = 0; 

    switch(num1) 
     { 
     case 1 : num1 = "One" ;break; 
     case 2 : num1 = "Two";break; 
     case 3 : num1 = "Three";break; 
     case 4 : num1 = "Four";break; 
     case 5 : num1 = "Five";break; 
     case 6 : num1 = "Six";break; 
     case 7 : num1 = "Seven";break; 
     case 8 : num1 = "Eight";break; 
     case 9 : num1 = "Nine";break; 
      default: System.out.println("Incorrect input"); 
         break; 
     } 

     switch(num2) 
     { 
     case 1 : num2 = "Teen";break; 
     case 2 : num2 = "Twenty";break; 
     case 3 : num2 = "Thirty";break; 
     case 4 : num2 = "Fourty";break; 
     case 5 : num2 = "Fifty";break; 
     case 6 : num2 = "Sixty";break; 
     case 7 : num2 = "Seventy";break; 
     case 8 : num2 = "Eighty";break; 
     case 9 : num2 = "Ninety";break; 
      default: System.out.println("Incorrect input"); 
         break; 
     } 

     System.out.println(num1 + num2); 

} 

} 
+2

'int num1 = 0;'和'num1 =“One”',你在这里使用不兼容的类型。 –

回答

0

您的变量num1和num2是整数,您正在为它们分配字符串值。这是行不通的。 所以你可以有另一个字符串变量来存储字符串的值。

但最重要的是,您将数字转换为单词的逻辑是错误的。尝试调试并纠正它。

0

如果您在切换之前分配int num1 = 0; int num2 = 0;,这是同样的事情写:

switch(0) {} 

尝试正确初始化num1num2

此外,您还尝试将字符串作为@Matt Clark添加的int变量。

0

您正在将num1和num2上的开关始终应用于0,而不是输入端。你也将字符串值分配给int类型。

如果你想使用switch实现你想要的,你将需要使用string [index]将输入字符串分隔成数字,但是这看起来不是一个很好的方法。

0

您不能在switch语句中将String分配给int变量。 因此,首先将num1和num2的数据类型更改为String。

String num1; 
String num2; 

然后在case语句应该区分 “1”,不区分1

  case "1" : num1 = "One" ;break; 
     case "2" : num1 = "Two";break; 
     case "3" : num1 = "Three";break; 
     case "4" : num1 = "Four";break; 
     case "5" : num1 = "Five";break; 
     case "6" : num1 = "Six";break; 
     case "7" : num1 = "Seven";break; 
     case "8" : num1 = "Eight";break; 
     case "9" : num1 = "Nine";break; 

如果你正在服用的输入为整数,然后转换为字符串

int number = Integer.parseInt (JOptionPane.showInputDialog("Type in a number between 0 - 100 :")); 

String num=Integer.toString(number); 
char[] sNums = num.toCharArray(); 

String num2 =String.valueOf(sNums[0]) ; 
String num1 = String.valueOf(sNums[1]); 

的阵列整数的情况下如果用户输入单个数字,则逻辑应该如下:

int number = Integer.parseInt(JOptionPane 
       .showInputDialog("Type in a number between 0 - 100 :")); 

     String num = Integer.toString(number); 
     char[] sNums = num.toCharArray(); 

     String num2 = String.valueOf(sNums[0]); 
     String num1 = ""; 
     if (sNums.length > 1) { 
      num1 = String.valueOf(sNums[1]); 
     } else { 
      num1 = num2; 
      num2 = ""; 
     }