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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

字符串连接符号+后面如果接的是加法符号+,则从左往右运算,加法符号变成字符串连接符号。想计算加法必须加括号提高运算优先顺序
而字符串连接符号+后面如果接的是乘法符号*,则优先计算乘法,不需要加括号。(另外如果把前面两项用括号扩起来通过代码验证可得程序错误,因为字符串不可参与加减乘除取模运算)




BiJiao1.png (94.93 KB, 下载次数: 34)

BiJiao1.png

28 个回复

倒序浏览
错误程序

BiJiao2.png (102.4 KB, 下载次数: 23)

错误程序

错误程序
回复 使用道具 举报
jlq 中级黑马 2015-10-18 17:07:49
藤椅
就是这样的
回复 使用道具 举报
回复 使用道具 举报
Y带了双引号,将其他几个数字也强制转换成了字符串,所以不能进行运算,而是是简单的连接.因而%提示错误
回复 使用道具 举报
litoper 发表于 2015-10-18 18:10
Y带了双引号,将其他几个数字也强制转换成了字符串,所以不能进行运算,而是是简单的连接.因而%提示错误 ...

看运行结果,第二个数据类型并没有被强制转换,仍然还是int整型。
回复 使用道具 举报
syb012 中级黑马 2015-10-18 20:36:14
7#
litoper 发表于 2015-10-18 18:10
Y带了双引号,将其他几个数字也强制转换成了字符串,所以不能进行运算,而是是简单的连接.因而%提示错误 ...

在JAVA表达式中,如果进行运算的几个变量类型不一致,JAVA表达式会采取类型自动提升的操作。Java定义如下的自动提升规则:
  1. 所有byte型、short型和char型将被提升到int型。
  2. 整个算术表达式的数据类型自动提升到与表达式中最高等级操作数同样的类型。操作数的等级排列如下图所示,位于箭头右边类型的等级高于位于箭头左边类型的等级。以下是java表达式中类型提升等级。


类型转换.jpg (44.03 KB, 下载次数: 29)

类型转换.jpg
回复 使用道具 举报
66666666666666666666
回复 使用道具 举报
syb012 中级黑马 2015-10-18 20:45:47
9#
litoper 发表于 2015-10-18 18:10
Y带了双引号,将其他几个数字也强制转换成了字符串,所以不能进行运算,而是是简单的连接.因而%提示错误 ...

JAVA中int、String的类型转换    (转载自神秘小猪的博客
int -> String
int i=12345;
String s="";
第一种方法:s=i+"";
第二种方法:s=String.valueOf(i);
这两种方法有什么区别呢?作用是不是一样的呢?是不是在任何下都能互换呢?
String -> int
s="12345";
int i;
第一种方法:i=Integer.parseInt(s);
第二种方法:i=Integer.valueOf(s).intValue();
这两种方法有什么区别呢?作用是不是一样的呢?是不是在任何下都能互换呢?
以下是答案:


第一种方法:s=i+"";   //会产生两个String对象
第二种方法:s=String.valueOf(i); //直接使用String类的静态方法,只产生一个对象
第一种方法:i=Integer.parseInt(s);//直接使用静态方法,不会产生多余的对象,但会抛出异常
第二种方法:i=Integer.valueOf(s).intValue();//Integer.valueOf(s) 相当于 new Integer(Integer.parseInt(s)),也会抛异常,但会多产生一个对象


1如何将字串 String 转换成整数 int?

A. 有两个方法:

1). int i = Integer.parseInt([String]); 或
i = Integer.parseInt([String],[int radix]);

2). int i = Integer.valueOf(my_str).intValue();

注: 字串转成 Double, Float, Long 的方法大同小异.

2 如何将整数 int 转换成字串 String ?

A. 有叁种方法:

1.) String s = String.valueOf(i);

2.) String s = Integer.toString(i);

3.) String s = "" + i;

注: Double, Float, Long 转成字串的方法大同小异.



JAVA数据类型转换

这是一个例子,说的是JAVA中数据数型的转换.供大家学习

package shenmixiaozhu;
import java.sql.Date;
public class TypeChange {
   public TypeChange() {
   }
   //change the string type to the int type
   public static   int stringToInt(String intstr)
   {
     Integer integer;
     integer = Integer.valueOf(intstr);
     return integer.intValue();
   }
   //change int type to the string type
   public static String intToString(int value)
   {
     Integer integer = new Integer(value);
     return integer.toString();
   }
   //change the string type to the float type
   public static   float stringToFloat(String floatstr)
   {
     Float floatee;
     floatee = Float.valueOf(floatstr);
     return floatee.floatValue();
   }
   //change the float type to the string type
   public static String floatToString(float value)
   {
     Float floatee = new Float(value);
     return floatee.toString();
   }
   //change the string type to the sqlDate type
   public static java.sql.Date stringToDate(String dateStr)
   {
     return   java.sql.Date.valueOf(dateStr);
   }
   //change the sqlDate type to the string type
   public static String dateToString(java.sql.Date datee)
   {
     return datee.toString();
   }

   public static void main(String[] args)
   {
     java.sql.Date day ;
     day = TypeChange.stringToDate("2003-11-3");
     String strday = TypeChange.dateToString(day);
     System.out.println(strday);
   }

}

JAVA中常用数据类型转换函数
虽然都能在JAVA API中找到,整理一下做个备份。


回复 使用道具 举报
QiChen 来自手机 中级黑马 2015-10-18 20:46:58
10#
额…这个我竟无言以对………
回复 使用道具 举报
syb012 中级黑马 2015-10-18 20:49:11
11#
回复 使用道具 举报
syb012 中级黑马 2015-10-18 20:50:13
12#
QiChen 发表于 2015-10-18 20:46
额…这个我竟无言以对………

回复 使用道具 举报
很好很强大   说的很详细  都是很基本的内容   要记牢固才行啊
回复 使用道具 举报
syb012 中级黑马 2015-10-18 22:14:59
14#
JYcainiao 发表于 2015-10-18 21:46
很好很强大   说的很详细  都是很基本的内容   要记牢固才行啊

回复 使用道具 举报
y带""是字符串
回复 使用道具 举报
syb012 发表于 2015-10-18 20:45
JAVA中int、String的类型转换    (转载自神秘小猪的博客)

---------------------------------------------------------------------------------------------------------------
litoper 发表于 2015-10-18 18:10
Y带了双引号,将其他几个数字也强制转换成了字符串,所以不能进行运算,而是是简单的连接.因而%提示错误 ...
--------------------------------------------------------------------------------------------------------------
1,简单理解,+这个符号在运算里面叫加,在字符串之间叫连接.
2,前面三个,因"Y"是字符串,所以后面的数字被强制转化为字符串,进而再连接到Y后面去了.
3.字符串理解成汉字,五是数字,汉字取模数字?或汉字取模汉字.
5,既已报错,为何转换?若被转换,何来报错?

回复 使用道具 举报
syb012 中级黑马 2015-10-19 08:12:24
17#
litoper 发表于 2015-10-18 23:22
-------------------------------------------------------------------------------------------------- ...

这个地方我等有机会问问老师,看老师怎么说
回复 使用道具 举报
syb012 中级黑马 2015-10-19 08:34:54
18#
litoper 发表于 2015-10-18 23:22
-------------------------------------------------------------------------------------------------- ...

字符串后接减乘除取模运算是否会把后面的int型强制转化成字符串类型?这么写出来的代码肯定是错误的。计算机是通过什么样的方式来判断错误,在判断错误的过程里是否有把整形强制转化成字符串型的这个过程,通过运行的错误结果不能很肯定的给出结论。但这个强制转化这个过程也是需要运算的,浪费资源,我认为设计Java 程序的人不会做强制转化这样一个多余的步骤,只要用乘法一边接字符串判断错误即可。但是否是这样,我还要等以后有机会再求证一下。
回复 使用道具 举报
谢谢分享
回复 使用道具 举报
加油加油加油加油加油加油
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马