java中int和String的转换

本文探讨了如何使用栈实现表达式求值,并深入解析了字符串在不同转换场景下的行为,包括整数到字符串、字符串到整数的转换方法及注意事项。同时,文章还介绍了其他基本类型与字符串之间的转换,以及日期类型的使用。

今天老师叫我们用刚学的栈做个表达式求值,简单来说就是做个计算器吧。首先先用了数组模拟做一个栈。然后问题就出现了,当我做一个字符是否符号时候,我用了这行代码if(oper=="-" || oper=="*" || oper=="+"|| oper=="/"){}

单独测试还好,因为后面没有什么空格什么的。但是当放入数组里面再拿出来的时候就会发现原来无论怎么样都会返回false,所有我发现自己对字符串的理解还是不够。并且因为我定义的栈,入栈(push)的方法传进来的是String,建立符号栈和数字栈的时候就要相应的Stringint的相互转换。

         首先看看intString

主要有三种:

第一种方法:String  s=123+"";  //会产生两个String对象

第二种方法:String  s=String.valueOf(123); //直接使用String类的静态方法,只产生一个对象

第三种方法:String s = Integer.toString(123);//这里也有两个String对象

 

       然后再看Stringint

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

       我查看了下第二种方法的源码

public static Integer valueOf(String s) throws NumberFormatException

    {

       return new Integer(parseInt(s, 10));

      }

这个方法调用了 int i = Integer.parseInt([String],[int radix]); radix表示你转换数字是什么进制,

       Eg:   int i=Integer.parseInt("1a35d",16); 输出为107357

 

 

当然其他基本类型也可以转换成StringString也可以转换成booleanfloat等类型。还有一个Date类型也是比较常用的。


转载于:https://my.oschina.net/u/1475143/blog/213696

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值