Java setType只存储大写字母
我正在为Java简介类做一个项目,PublicBookOrder类中的一个UML方法如下:Java setType只存储大写字母,java,Java,我正在为Java简介类做一个项目,PublicBookOrder类中的一个UML方法如下: +setType(type:char):void // accepts (R,r,O,o,P,p,F,f,U,u,N), but stores // UPPERcase letters. For any other type entered, the value N is stored 由此,我有两个问题: 下面的代码可以工作吗 public class BookOrder { private Stri
+setType(type:char):void
// accepts (R,r,O,o,P,p,F,f,U,u,N), but stores
// UPPERcase letters. For any other type entered, the value N is stored
由此,我有两个问题:
public class BookOrder
{
private String author;
private String title;
private int quantity;
private double costPerBook;
private String orderDate;
private double weight;
private char type; //R,O,F,U,N
public void setType(char type)
{
if (type=r || type=R || type=o || type= O || type= f || type= F || type= u || type= U || type= n || type= N)
this.type= type;
else
this.type= N;
}
像这样替换每个条件
type=='r'
因为java使用==来检查相等性,并且需要“”来表示字符
if (type=='r' || type=='R' /*etc etc*/)
{
if(type < 97) //Upper case
this.type = type;
else //Lower case
this.type = (type - 32);
}
这将
类型
转换为字符串
,将其大写,然后将其转换回字符
,以分配给此类型。类型
在比较时必须小心。比较字符串时,==运算符检查引用值。使用Strings.equals函数更安全(如果允许的话,或者自己做)
在本例中,我从命令行获取参数,然后将它们与指定的值进行比较。阅读java函数文档可能会有所帮助:“下面的代码行得通吗?”您可以尝试使用seedfine
work
。我们看不到这个类型是在哪里定义的。实际上,atm我看不到。我有很多没有返回的方法要写,所以如果我尝试编译,它只会将它们作为错误抛出,其他什么都没有。实际上,你可以试试看:你的代码应该是正交的。如果您在一个新的空项目中编写了一个类似于上面所述的函数,那么您应该能够针对它运行代码,以查看它是否如您所期望的那样工作。查看JUnit
。这非常有意义,应该可以很好地工作,唯一的问题是它抛出一个错误,说“精度损失”required:char;发现:int。这是一个错误。是的,我把它放在else部分,就像上面一样。你可以尝试用'
(空格字符,ASCII值为32)替换32
。否则,我将在一个讨厌的超级嵌套方法中进行编辑以大写…我尝试插入“”,但它仍然给了我一个负号错误。编辑成功了,虽然这是我在课堂上不应该知道的事情,但我会评论它,并告诉他我必须做一些研究才能得到它。哈哈,谢谢。
else
this.type = ((String.valueOf(type)).toUpperCase()).charAt(0);
import java.util.*;
public class Main{
public static String setType(String type)
{
if (type.equals("r") || type.equals("R") || type.equals("o") || type.equals("O") || type.equals("f") || type.equals("F") || type.equals("u") || type.equals("U") || type.equals("n") || type.equals("N"))
type=type;
else
type="N";
return type;
}
public static void main(String [] args){
System.out.println("Try different stuff");
System.out.printf("%s\n",setType(args[0]));
}
}