A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 司懿卓 于 2012-11-20 21:05 编辑

今天,写了个小程序.其中需要判别输入形参字符是否是 '男'|'女'.
在APi里一直没找到,或许技术不好没找到...
compareTo(); 这个不行. equals(); 这个也不行..

最后没办法通过强转解决了,但是感觉不是太好..
代码:
private char gender;
public void setGender(char gender)
{
        int i = (int)'男', j = (int)'女';
        int k = (int)gender;
        if (k == i || k = j)
        {
                  //执行体
         }
}

应该有类似于 instanceof 这个对象类型判断的Api吧??  
或者怎么才能再次优化下呢???
忘朋友帮忙解决下..

--------------------------------------------------------------------------
是自己的问题,下午一直想把一程序代码从继承修改成组合,修改太多次,把自己给搞晕了..
public void setGender(char gender)
        {       
                if (gender == '男' || gender =='女')
                {
                        this.gender = gender;
                }
                else
                {       
                        System.out.println("请您正确设置的性别");

                }
        }
这个是我之前出问题的..    应该把 &&  换成 ||  就完全没问题了..  

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 赞一个!

查看全部评分

5 个回复

倒序浏览
public class TestProblem3 {
        public static void main(String[] args) {
         Gender g = new Gender();
         g.setGender('X');
        }
}

class Gender {
        private char gender;

        public char getGender() {
                return gender;
        }
        public void setGender(char gender) {
                if (gender != '男' && gender != '女') {
                        throw new RuntimeException("无效的参数");
                }
                this.gender = gender;
        }

       
}
这个应该可以解决你的问题

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 神马都是浮云

查看全部评分

回复 使用道具 举报
应该用java基础类型,Integer.valueof(‘男’)   就可以了。。。。。。。
回复 使用道具 举报
王阳 发表于 2012-11-20 19:31
public class TestProblem3 {
        public static void main(String[] args) {
         Gender g = new Gender ...

谢谢啦..  是自己的问题,自己打包的类有点多了 有点晕.
public void setGender(char gender)
        {       
                if (gender == '男' && gender =='女')
                {
                        this.gender = gender;
                }
                else
                {       
                        System.out.println("请您正确设置的性别");

                }
        }

这个是我之前出问题的..    应该把 &&  换成 ||  就完全没问题了..  
回复 使用道具 举报
赵学刚 发表于 2012-11-20 20:54
应该用java基础类型,Integer.valueof(‘男’)   就可以了。。。。。。。

把自己给绕晕了..
感觉还是修改后的直观点,谢谢啦..  ^ ^
回复 使用道具 举报
司懿卓 发表于 2012-11-20 21:07
把自己给绕晕了..
感觉还是修改后的直观点,谢谢啦..  ^ ^

呵呵,不客气
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马