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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王德升 中级黑马   /  2012-5-15 15:33  /  2757 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 王德升 于 2012-6-3 23:15 编辑

public class  Demo
{
         public static void main(String[] args)
        {
                String s="abc";
                String big="";
        
                for(int x=0;x<l.length();x++)
                {
                        big+=(char)(l.charAt(x)^' ');// ⑴
                }
                System.out.println(big);
        }
}
⑴字符型char,能直接赋值给String =""吗 ?

6 个回复

倒序浏览
l.length??什么东西
回复 使用道具 举报

如果你想让程序运算 “l ” 那么你应该先告诉它“l”是什么   先定义一个l的数组什么的
回复 使用道具 举报
我知道l是s。
既然你运行通过,那就是可以。
话说
l.charAt(x)^' '
进行大小写转换,巧妙!
回复 使用道具 举报
李哲 发表于 2012-5-15 16:16
我知道l是s。
既然你运行通过,那就是可以。
话说

我是看到题目看不懂,不是我写的。
回复 使用道具 举报
本帖最后由 wangrenjie 于 2012-5-15 17:37 编辑

字符类型不能直接给String类型赋值的。
big+=(char)(s.charAt(x)^' ');// ⑴    这句话里的(char)强制转换是把(s.charAt(x)^' ')的计算结果强转成char类型

(s.charAt(x)^' )      计算过程 :   先拿出s.charAt(x) 的值 , x=0的时候,拿到字符'a' ,字符'a'在码表中的值是97, ' ' 这个空格字符的码表值是'32' ,
它们俩个 97 ^ 32 的值是65,所以这句话的结果所对应的码表值 是:65   
接着计算 big += (char)65       把65强制转为char值,65所对应的char值是'A'
所以: big+='A'  这样是没有错的。
所以big+=(char)(s.charAt(x)^' ');不能算是直接给String类型赋值。

评分

参与人数 1技术分 +1 收起 理由
攻城狮 + 1 赞一个!

查看全部评分

回复 使用道具 举报
big+=(char)(s.charAt(x)^' ');这句话包涵两次强转过程,等号右边强转为char类型,big+=包涵一次隐强转为string类型。例如:string st=" "+'g'
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马