日期:2014-05-20  浏览次数:20687 次

java新手问题~ 求各位大神帮帮忙
不好意思,打扰各位大神休息了,在下还有一点点不懂的地方,还指望大神请教一下下
void convert(String i, String j){
a1 = int i;   //字符转转整形不能这样写 ,应该用Integer.parseInt(i)
a2 = int j;   //同上

1.为什么不能直接用基本数据类型来转换,而要用封装类来转换啊?
2.Integer.parseInt(i)中 Integer是个类但是为什么能直接调用方法啊?

还有~~
t1.convert(a,b);   //因为a,b是t1的成员,要写成t1.convert(t1.a,t1.b)
t1.sum(a1,a2);   //同理  t1.sum(t1.a1,t1.a2)

是不是在main函数中定义了一个对象,该对象要调用方法时,传递的参数必须要用堆内存中的成员变量啊?
java新手~

------解决方案--------------------
楼上的误人歧途啊
 public String change(String s){
        char[] c = s.toCharArray();
        c[0] = Character.toLowerCase(c[0]);
        int a = 0;
        if((int)c[0] < (int)'z'-5){
            a = (int)c[0]+5;
        }else{
            a = (int)'a'+5-((int)'z'-(int)c[0])-1;
        }
        char c1 = (char)a;
        return String.valueOf(c1);
    }
int类是点不出方法的,只能通过强转,封装类相当于自己重写了int类,可以通过“类.方法”来调用封装类的方法,转换字符串
2.t1是你创建的对象,调用这个对象中的变量用“对象.属性”
------解决方案--------------------
2.Integer.parseInt(i)中 Integer是个类但是为什么能直接调用方法啊?

建议你可以去看下API.

Integer,Double,Short,Long,Character,Boolean,Float,Byte,这几个包装类都是系统默认导入的,而这些类里面基本都有parseXXX()静态方法{XXX代表相应类型},所以你就可以直接用了。

另外:

char和int是可以直接转换的.



//省略
int s = 'a'; //65
//省略

别的转换成int可能会出错.