`
shawnccx
  • 浏览: 165684 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

字符串和多个char类型的字符相加比较问题

 
阅读更多
错误案例
【现象描述】表面看上去内容一样的字符串和单个字符拼接比对,结果永远为false

【错误代码】 "34".equals('3' + '4')




错误分析
当且仅当+操作符的操作数中至少有一个是String类型时,才会执行字符串连接操作;否则,执行加法。

如:在本例中'3' + '4'得到的结果是整型数值103,而不是字符串"34"。

如果是字符'a' + 'b'得到的结果是a,b字符的ASCII码相加的整型数值。

根据这样的情况,可以有几种选择:

1、 预置一个空字符串("" + 'a' + 'A')

2、 将第一个数值用String.valueOf()显示地转换成一个字符串(String.valueOf('a') + 'A')

3、 使用一个字符串缓冲区(sb.append('a');sb.append('A'););

正确用法
"ab".equals("" + '3' + '4')

分享到:
评论

相关推荐

    Java中string字符串和char字符之间的千丝万缕

    目录前言String字符串和char字符的区别拓展相互转换String字符串转换成char字符数组char字符转换成String字符串char字符数组转换成String字符串String类和StringBuffer类之间的转换拼接String字符串之间的拼接String...

    C#字符串常见操作总结详解

    (2)字符串转为比特码 GetBytes()(3)字符串相加 推荐StringBuilder sb = new StringBuilder();sb.Append();(4)截断字符串的一部分 变量.SubString(起始位置,截取位数);(5)查指定位置是否为空字符 char....

    字符串、运算符重载

    赋值、相加、比大小、前++、后++ #include #include class String { private: int length; char *ptr; public: String(char *s); ~String(); String(String &s); void display(); String operator =(String &...

    C语言程序设计标准教程

    6.允许在同一个类型说明中,说明多个数组和多个变量。 例如: int a,b,c,d,k1[10],k2[20]; 数组元素的表示方法  数组元素是组成数组的基本单元。数组元素也是一种变量, 其标识方法为数组名后跟一个下标。 下标...

    深入理解char *a与char a[]的区别

    前言 指针和数组存在着一些本质的区别。当然,在某种情况下,比如数组作为函数的参数...看实例:把两个字符串相加: 结果: 对比: 结果: 把字符串加到指针所指的字串上去,出现段错误,本质原因:*d=”0123456

    C++大学教程,一本适合初学者的入门教材(part2)

    第10章 虚函数和多态性 10.1 简介 10.2 类型域和switch语句 10.3 虚函数 10.4 抽象基类和具体类 10.5 多态性 10.6 实例研究:利用多态性的工资单系统 10.7 新类和动态关联 10.8 虚析构函数 10.9 实例研究:...

    C++大学教程,一本适合初学者的入门教材(part1)

    第10章 虚函数和多态性 10.1 简介 10.2 类型域和switch语句 10.3 虚函数 10.4 抽象基类和具体类 10.5 多态性 10.6 实例研究:利用多态性的工资单系统 10.7 新类和动态关联 10.8 虚析构函数 10.9 实例研究:...

    【Python】利用map和reduce编写一个str2float函数,把字符串’123.456’转换成浮点数123.456

    题目:利用map和reduce编写一个str2float函数,把字符串’123.456’转换成浮点数123.456 这道题我想到两种思路 1.读取str中的数字和小数点位置,先将其转换为整数然后除以小数点的位置 2.将str中小数部分和整数部分...

    C++ 小型复数计算器

    =len-1) //判断字符'I'是否为字符串中作后一个字符 cout; //如果不是,说明复数数据格式错误 else com.Image=sign*n; //是最后一个字符,复数对象已接受完,用sign*n为虚部赋值 break; } while(s[k]>='0' && s[k]) /...

    C 语言编程常见问题解答.chm

    15.4 char,short,int和long类型分别有多长? 15.5 高位优先(big-endian)与低位优先(little—endian)的计算机有什么区别? 第16章 ANSI/ISO标准 16.1 运算符的优先级总能起作用吗? 16.2 函数参数类型...

    C语言字符频率统计程序代码

    #include #include struct four { double a; struct four *next;...=NULL) //各个节点数值相加的结果,有优先级符号的已经先计算了. { s=s+(p->a); p=p->next; } return s; //返回运算结果. }

    基于短消息的实时水质监控系统

    // 取源字符串的计数值的最低3位 if(nChar == 0) // 处理源串的每个字节 { nLeft = *pSrc; // 组内第一个字节,只是保存起来,待处理下一个字节时使用 } Else { // 组内其它字节,将其右边部分与...

    從新手到高手C++全方位學習

    下載網址: ... 中文名: 從新手到高手C++全方位學習隨書DVD文件 作者: 範磊 出版社: 科學出版社 書號: 703024706X 發行時間: 2009年09月 ...18.7.9 為String類添加字符串的相加功能 18.7.10 為String類添加...

    2.Java基础语法.ppt

    3.字符串拼接 在单独运算的时候 ++i,i++ 没有任何区别,都是加1操作相当于 i=i+1 i++;先运算,后加1(先运算后加减) ++i;先加1,后运算(先加减后运算) 2.逻辑运算符(&&,||,!,^) 逻辑非 ! 取反 逻辑...

    Mifare卡LockSDK V3.3酒管软件接口_160301

    data: 要写入的16字节数据, 用字符串表示(32个字符,只能是0~9和A~F, a~f ) 返回值:错误类型 描 述:写一块数据. 必须先用TP_M1AuthKey验证密钥 ; 例如, 扇区9可以读写的块号包括: 9x4 9x4+1 9x4+2, 即: 36 37 38...

    C语言编程要点

    15.4. char,short,int和long类型分别有多长? 212 15.5. 高位优先(big—endian)与低位优先(little-endian)的计算机有什么区别? 213 第16章 ANSI/ISO标准 214 16.1. 运算符的优先级总能起作用吗? 214 16.2. 函数...

    C#微软培训资料

    14.4 继承中关于属性的一些问题.169 14.5 小 结 .172 第四部分 深入了解 C#.174 第十五章 接 口 .174 15.1 组件编程技术 .174 15.2 接 口 定 义 .177 15.3 接口的成员 .178 15.4 接口的实现 .182 ...

    有关栈的输入,输出,删除,修改等

    if (n1>=0 && n2>=0 && result|| n1<=0 && n2<=0 && result>0) //两个大于0的数相加,和小于0,或两个小于0的数相加,和大于0,返回错误 {flag=2;return error;} else {flag=0;return result;} break; case '-': //减法...

    2009达内SQL学习笔记

    (单引号,引起字符串;双引号,引起别名。起别名有符号,或者区分大小写时,必须用双引号) 多表查询时,可给表起别名。(给列起别名,列<空格>列别名;给表起别名,表<空格>表别名;)。 如:Select first_name ...

Global site tag (gtag.js) - Google Analytics