import java.util.Scanner;
public class translate {
public static void main(String[] args) {
while(true)
{
Scanner in = new Scanner(System.in);;
String s;
s = in.nextLine();
char a = s.charAt(0);
   String x[]={"zero","one","two", "three","four", "five","six","seven","eight","nine"} ;
   String y[]={"ten","eleven","twelve","thirteen","fourteen","fifteen", "sixteen","seventeen","eighteen","nineteen" };
   String z[]={"twenty","thirty","fourty","fifty",  "sixty","seventy", "eighty","ninety"  };
   int i,shu=0;
    for(i=0;i<10;i++)
   {
   if(s==x[i])
   {
shu=shu+i;
   break;
}
   else if(s==y[i])
   {
shu=shu+i+10;
   break;
}
}
for(i=0;i<8;i++)
{
   if(s==z[i])
   {
   shu=shu+i*10+20;
   break;
}
}   if(a=='\n')
{
   System.out.println(shu);
   shu=0;
   }
}
}
 
   
   }
这个代码不能输出结果,怎么回事啊

解决方案 »

  1.   

    import java.sql.SQLException;
    import java.util.Scanner;
    public class translate {
    public static void main(String[] args) {
    while(true)
    {
    Scanner in = new Scanner(System.in);;
    String s;
    s = in.nextLine();  String x[]={"zero","one","two", "three","four", "five","six","seven","eight","nine"} ;
      String y[]={"ten","eleven","twelve","thirteen","fourteen","fifteen", "sixteen","seventeen","eighteen","nineteen" };
      String z[]={"twenty","thirty","fourty","fifty", "sixty","seventy", "eighty","ninety" };
      int i,shu=0;
      for(i=0;i<10;i++)
      {
         if(s.equals(x[i]))
         {
           shu=shu+i;
           System.out.println(shu);
           break;
          }
         else if(s.equals(y[i]))
               {
                 shu=shu+i+10;
                 System.out.println(shu);
                 break;
               }
      }
      for(i=0;i<8;i++)
      {
        if(s.equals(z[i]))
         {
           shu=shu+i*10+20;
           System.out.println(shu);
           break;
         }
       }
     }
    }
    }
    你看看'=='和equals()的区别    ‘==’比较内存地址,equals()比较string内容
      

  2.   


    ==:比较的是基本数据类型的值和引用数据类型的内存地址
    equals:比较的是引用数据类型的内容,此比较会调用对象的equals()方法(可以在此方法里定义比较规则),如果此对象没有覆写此方法,则调用Object里的equals()方法。
      

  3.   

    import java.util.Scanner;
    //import java.lang.String;
    public class Translation
    {
       
      //在输入英文时,如果只有一个字符串要多输入一个“0”来结束输入
     public static void main(String args[])
     {
        Scanner sc=new Scanner(System.in);
        System.out.println("please input a number 1 or 2 for your need:");
        System.out.println("1.Math to English;");
        System.out.println("2.English to Math;");
        String x[]={"zero","one","two", "three","four", "five","six","seven","eight","nine"} ;
        String y[]={"ten","eleven","twelve","thirteen","fourteen","fifteen", "sixteen","seventeen","eighteen","nineteen" }; 
        String z[]={"twenty","thirty","fourty","fifty",  "sixty","seventy", "eighty","ninety" };
        int t;
        while(true)
       {
         t =sc.nextInt();
            if(t==1)                        //数字转成英文
             { 
                System.out.println("please input a mathnumber:");
                int m=sc.nextInt();
                {
                  if(m>=0 && m<10) 
                   System.out.println(x[m]);
                  if(m>=10 && m<20) 
                   System.out.println(y[m-10]);
                  if(m>=20 && m<100) 
                   System.out.println(z[m/10-2]+'-'+x[m%10]);
                  else 
                   System.out.println("please input a number between 0 and 99");
                 }
             }
           if(t==2)                     //英文转成数字
             { 
                System.out.println("please input a englishnumber:");
                System.out.println("如果您的英文数字只有一个字符串,请输入一个“0”结束");
                String s[]=new String[2];   //100以内的英文数字最多两个字符串
                s[0]=new String(sc.next()); //输入
                s[1]=new String(sc.next()); 
                int i;
                 for(i=0;i<10;i++)
                   {
                    if(s[0].equals(x[i]) && s[1].equals("0")) 
                      {System.out.println(i);
                       break;}
                    if(s[0].equals(y[i]) && s[1].equals("0")) 
                      {System.out.println(10+i);
                       break;}
                   } 
                 if(i==10)
                 {int k;
                 for(k=0;k<8;k++)
                    for(int j=0;j<10;j++)
                     {if(s[0].equals(z[k]) && s[1].equals(x[j]))  
                       {System.out.println((k+2)*10+j); 
                        break;}
                      if(s[0].equals(z[k]) && s[1].equals("0"))
                      {System.out.println((k+2)*10);
                        break;}
                      }
                    //if(k==8)
                     // System.out.println("please input a number between 0 and 99");
                    }
                  
             }
          else  System.out.println("please insure the number you input is 1 or 2");
        }  
     }
    }
      

  4.   

    上面是数字和英文互译的,刚学Java菜鸟一只,如果只输入一个字符串还要多输入“0”不知道怎么办了
      

  5.   

    http://www.cnblogs.com/codejar/archive/2012/02/15/2352606.html
      

  6.   


    public class NumberTextTest {
      
      public static void main(String[] args) {
        
        for(Integer number : Arrays.asList(0, 1, 10, 102, 1030, 101002345)) {
          
          System.out.println(NumberText.getInstance(
                  NumberText.Lang.English).getText(number));
        }
      }
    }run:
    zero
    one
    ten
    one hundred and two
    one thousand and thirty
    one hundred and one million and two thousand three hundred and fourty five
    BUILD SUCCESSFUL (total time: 0 seconds)