Java 此程序出错。错误在第1,2,3行。

Java 此程序出错。错误在第1,2,3行。,java,Java,代码用于解释不同条件下no的结果。错误在第1,2,3行。请给我解释一下调试方法。我对这个方法不太了解。这里,nos是一个int。但是在开关语句中,您将其与字符进行比较:'1'可以隐式转换为整数进行比较,但这是0x31或49的ASCII值。使用开关语句中的实际数字 不能对基元int类型调用方法。要获取特定的数字,可以使用String.valueOf将其转换为String,然后对其调用charAt 接下来,在这一行中(以及其他喜欢的人) =运算符是java中的赋值运算符。使用=来比较int值。这里有

代码用于解释不同条件下no的结果。错误在第1,2,3行。请给我解释一下调试方法。我对这个方法不太了解。

这里,
nos
是一个
int
。但是在
开关
语句中,您将其与
字符进行比较:
'1'
可以隐式转换为
整数
进行比较,但这是
0x31
49
的ASCII值。使用
开关
语句中的实际数字

不能对基元
int
类型调用方法。要获取特定的数字,可以使用
String.valueOf
将其转换为
String
,然后对其调用
charAt

接下来,在这一行中(以及其他喜欢的人)


=
运算符是java中的赋值运算符。使用
=
来比较
int
值。这里有一个关于的教程。

这里,
nos
是一个
int
。但是在
开关
语句中,您将其与
字符进行比较:
'1'
可以隐式转换为
整数
进行比较,但这是
0x31
49
的ASCII值。使用
开关
语句中的实际数字

不能对基元
int
类型调用方法。要获取特定的数字,可以使用
String.valueOf
将其转换为
String
,然后对其调用
charAt

接下来,在这一行中(以及其他喜欢的人)


=
运算符是java中的赋值运算符。使用
=
来比较
int
值。这里有一个关于的教程。

nos
是一个int,它是一个原语,不会附加任何方法。我认为您的
if
语句应该是
if(result.charAt(result.length()-1)==1)
,等等。

nos
是一个int,它是一个原语,不会附加任何方法。我认为您的
if
语句应该是
if(result.charAt(result.length()-1)==1)
,依此类推。

如果查看每个if语句,您将看到实际上是在为字符串末尾的字符赋值<代码>如果(nos.charAt(nos.length()-1)=1){
可能应该是
if(nos.charAt(nos.length()-1)=1{

如果查看每个if语句,您将看到您实际上在为字符串末尾的字符赋值。
if(nos.charAt(nos.length()-1)=1{
可能应该是
if(nos.charAt(nos.length()-1)=1){


nos
是一个
int
。它没有
charAt
length
方法。事实上,由于它是一个原语,所以不能有任何方法

另外,正如其他答案中提到的,
=
用于作业,
=
用于比较(这是您想要的)


nos
是一个
int
。它没有
charAt
length
方法。事实上,由于它是一个原语,所以不能有任何方法


另外,如其他答案中所述,
=
用于作业,
=
用于比较(这是您想要的).

nos
是一个
int
。它没有
charAt
length
方法。事实上,它没有任何方法。你能发布完整的stacktrace吗?我们需要知道错误的类型。还可以使用==not=@Kevin进行比较。你能把它作为一个答案吗?
(char)1
是具有ASCII代码1的字符。
'1'
是具有代码49的ASCII字符
1
。因此您可以编写
nos.charAt(无论什么)=='1'
nos.charAt(无论什么)==49
nos
是一个
int
。它没有
charAt
length
方法。事实上,它没有任何方法。你能发布完整的堆栈跟踪吗?我们需要知道错误的类型。也可以使用==not=@Kevin你能添加这个作为答案吗?
(char)1
是具有ASCII代码1的字符。
'1'
是具有代码49的ASCII字符
1
。因此您可以编写
nos.charAt(无论什么)=='1'
nos.charAt(无论什么)==49
。迂腐的注释:虽然
=
是赋值运算符,但您提到的行实际上并没有赋值,即使编译代码也不会赋值,因为方法复制返回值(因此客户端无法访问从中获取值的字段)迂腐的注释:虽然
=
是赋值运算符,但您提到的行实际上并没有赋值,而且即使编译代码也不会赋值,因为方法复制返回值(因此客户端无法访问从中获取值的字段)
/*OridinalForm.java
 * ----------------
 * This program displays the the number with their suffix.
 */
import acm.program.*;
public class OridinalForm extends ConsoleProgram {
    private static final long serialVersionUID = 1L;

    public void run(){
        while(true){
         int no=readInt("Please enter the numberand press 0 to stop:");
         if(no==0){
             break;
         }
             println(oridinalForm(no));
         }
     }
         private String oridinalForm(int nos){
         String result="";
         switch(nos){
         case '1':result=nos+"1st";
         case '2':result=nos+"2nd";
         case '3':result=nos+"3rd";
         default:
    1        if(nos.charAt(nos.length()-1)=1){
                 result=nos+"1st";
             }
    2        if(nos.charAt(nos.length()-1)=2){
                 result=nos+"2nd";
             }
    3        if(nos.charAt(nos.length()-1)=3){
                 result=nos+"3rd";
             }
             else result=nos+"th";
         }
         return result;
     }
  }
if(nos.charAt(nos.length()-1)=1){
 private String oridinalForm(int nos){
     //                      ^^^ 
        if(nos.charAt(nos.length()-1)=1){
     //       ^          ^           ^
             result=nos+"1st";
         }
        if(nos.charAt(nos.length()-1)=2){
             result=nos+"2nd";
         }
        if(nos.charAt(nos.length()-1)=3){
             result=nos+"3rd";
         }
         else result=nos+"th";
     }
     return result;
 }