leetcode String to Integer (atoi) java基本编程学习(二)
来源:互联网 发布:2017成都软件行业 编辑:程序博客网 时间:2024/06/05 21:05
目标: 通过完成笨题目学习java编程的同时,通学java的String类。
一. java String学习 【 参考学习链接: http://sarin.iteye.com/blog/603684 好文章!!!】 测试代码: StringTest
【 学习链接 : http://www.importnew.com/9622.html 】
1) 内存分配:
栈内存 : 对象的引用 >>>>>>>> 堆内存 : 对象
常量区 String
2) Sting类 本质是 字符数组 char[] ;
其次String类是final的,是不可被继承的,这点可能被大多数人忽略;
再次String是特殊的封装类型,使用String时可以直接赋值,也可以用new来创建对象,但是这二者的实现机制是不同的(不同于别而 类);
String池的概念,Java运行时维护一个String池,池中的String对象不可重复,没有创建,有则作罢。String池不属于堆和栈,而是属于常量池。
任何重新修改String都是重新分配内存空间,这就使得String对象之间互不干扰。即String中的内容一旦生成不可改变,直至生成新的对象。
使用+连接字符串每次都生成新的对象,而且是在堆内存上进行,而堆内存速度比较慢(相对而言),那么再大量连接字符串时直接+是不可取的,当然需要一种效率高的方法。Java提供的StringBuffer和StringBuilder就是解决这个问题的。区别是前者是线程安全的而后者是非线程安全的,StringBuilder在JDK1.5之后才有。不保证安全的StringBuilder有比StringBuffer更高的效率。
二. 代码实现:
参考链接: http://www.2cto.com/kf/201501/369347.html http://www.programcreek.com/2012/12/leetcode-string-to-integer-atoi/
<span style="font-size:12px;">public class Solution { public int myAtoi(String str) { // if(str == NULL || str.length()<0) //null是大小写敏感的,不能写成NULL 、 Null等。 if(str == null || str.length()<=0) return 0; //下面的判断都是在str非空的情况的进行的 //首先去掉前面的空格 str = str.trim(); //判断String中是否很有正负号(因为数据的正负号肯定在数据的最前面) char flag ='+'; //char是单引号('') int i = 0; if(str.charAt(i) == '-'){ flag = '-'; i++; }else if(str.charAt(i) == '+'){ i++; } //接下来string to integer double res = 0; //不存在单独对字母的判断,因为如果刚开始是字母,就不会执行下面的,如果中途有字母也会终止,返回前面的值 while(str.length()>i && str.charAt(i)>='0' && str.charAt(i)<='9'){ res = res *10 + str.charAt(i)-'0'; //因为charAt返回的是char类型,所以通过-‘0’将char类型转换成int型 i++; } if(flag == '-') res = -res; //因为正数和负数绝对值差1,所以这里需要先标出正负,在进行int越界的判断 if(res > Integer.MAX_VALUE) return Integer.MAX_VALUE; if(res < Integer.MIN_VALUE) return Integer.MIN_VALUE; return (int)res; }}</span>
- leetcode String to Integer (atoi) java基本编程学习(二)
- [Leetcode] String to Integer (atoi) (Java)
- LeetCode – String to Integer (atoi) (Java)
- 【Leetcode】String to Integer(atoi) in JAVA
- [LeetCode Java] 8 String to Integer (atoi)
- [LeetCode][Java] String to Integer (atoi)
- [leetcode-8]String to Integer (atoi)(java)
- LeetCode : String to Integer (atoi) [java]
- Leetcode: 8. String to Integer (atoi)(JAVA)
- LeetCode(java)8. String to Integer (atoi)
- [LeetCode-Java]8. String to Integer (atoi)
- [LeetCode] 8. String to Integer (atoi) java
- leetcode String to Integer (atoi)(Java)
- String to Integer (atoi) leetcode java
- [leetcode]8. String to Integer (atoi)(Java)
- 【LeetCode】String to Integer (atoi)(java)
- LeetCode:String to Integer (atoi)
- LeetCode: String to Integer (atoi)
- C++ 遍历文件夹
- 瀑布流(jquery)
- datagridview控件中使用comboBox控件(datagridviewcomboboxcolumn类)
- A journey of a packet within OpenContrail
- tomcat远程调试
- leetcode String to Integer (atoi) java基本编程学习(二)
- CASE WHEN 及 SELECT CASE WHEN的用法
- java基于Socket设计一个Mail的收发客户端
- SQL Server 2016:内存列存储索引
- 计算二进制数中1出现的次数
- <Swift>IOS隐藏push子界面的bottom tabbar
- android的Environment类
- [Win32] API Hook(1)在32位系统上的实现
- 关于android uid 与进程的关系