Java 此程序出错。错误在第1,2,3行。
代码用于解释不同条件下no的结果。错误在第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值。这里有
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;
}