`
daojin
  • 浏览: 689530 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

Android面试题目之三: 字符串转整形

 
阅读更多

1. 首先写了一个字符串转整形的算法:

	public static class String2Int1 implements String2Int {
		@Override
		public int string2int(String str) {
			int value = 0;
			int pow10 = 1;
			for (int j = str.length() - 1; j >= 0; --j) {
				char charValue = str.charAt(j);
				if (charValue == '-' && j == 0) {
					value = -value;
					break;
				}
				if (charValue == '+' && j == 0) {
					break;
				}
				value = value + (charValue - '0') * pow10;
				pow10 = pow10 * 10;
			}
			return value;
		}
	}
	

 打印时间:

  

1the time is 3143, strValue = -1001213121

 

2. 测试了Android SDK的算法:

	public static class String2Int2 implements String2Int {
		@Override
		public int string2int(String str) {
		return Integer.valueOf(str);
		}
	}

 打印时间:

 

1the time is 7980, strValue = -1001213121

 

   Android SDK 算法比自己实现的算法慢了一倍。但是,自己实现的算法可不可以改进呢。

3. 改进的算法:从左向右怎么样呢,是不是可以快速一点:

	public static class String2Int2 implements String2Int {
		@Override
		public int string2int(String str) {
			int result = 0;
			boolean negative = false;
			int i = 0, len = str.length();
			int digit;
			char firstChar = str.charAt(0);
			if (firstChar < '0') { // Possible leading "+" or "-"
				if (firstChar == '-') {
					negative = true;
				}
				i++;
			}
			while (i < len) {
				digit = str.charAt(i++) - '0';
				result *= 10;
				result += digit;
			}
			return negative ? -result : result;
		}
	}

 打印时间:

 

1the time is 2774, strValue = -1001213121

 

 

总结

由此可见。最后一个算法减少了乘法运算的次数,因此速度要快一点。


如果您看了有收获,那么下载一个APl软件支持一下博主吧!还可以解决您的密码太多记不住的烦恼哦。

源码下载链接:

http://a.app.qq.com/o/simple.jsp?pkgname=com.wa505.kf.epassword

 

 

0
0
分享到:
评论

相关推荐

    1162:字符串逆序.cpp

    1162:字符串逆序 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 31557 通过数: 20735 【题目描述】 输入一串以‘!’结束的字符,按逆序输出。 【输入】 如题述。 【输出】 如题述。 【输入样例】 abc! 【输出...

    android字符串和16进制转换

    在Android开发中,理解和操作字符串以及16进制数值是至关重要的技能,尤其是在处理数据传输、存储或解析二进制数据时。这篇文章将深入探讨如何在Android平台上进行字符串与16进制之间的转换。 首先,我们要明白...

    函数:字符串s1中删除串s2里包含的所有字符(c语言)

    “C语言字符串操作:删除串s2里包含的所有字符” 在C语言中,字符串操作是非常重要的一部分,本篇文章将介绍如何编写一个函数,删除字符串s1中包含的所有字符,这些字符也出现在字符串s2中。 在这个函数中,我们...

    Android图片Bitmap和字符串String之间的相互转换

    在Android开发中,处理图像数据是一项常见的任务,而Bitmap和String是两个核心的数据类型,分别代表位图图像和文本字符串。Bitmap对象用于存储和显示图像,而String则常用于保存和传输文本信息。本篇文章将深入探讨...

    Python:字符串转数字

    python字符串转数字

    Android字符串运算的计算器

    6. **UI设计**:Android应用的用户界面(UI)设计是另一个重要方面。计算器通常包括数字按钮、运算符按钮、清除键以及显示区域。使用Android的布局管理器(如LinearLayout, RelativeLayout或ConstraintLayout)可以...

    android byte字节数组转换十六进制字符串

    在Android开发中,有时我们需要将字节数组(byte array)转换为十六进制字符串,以便于数据存储、传输或调试。这是因为字节数组是二进制数据,而十六进制字符串则是一种人类可读的表示方式。下面我们将详细讨论如何...

    九度oj 题目1369:字符串的排列 剑指offer

    九度oj 题目1369:字符串的排列 剑指offer里面的题目 自己写的代码,供参考!

    数字字符串转BCD码转字符串C函数

    数字字符串转BCD码,BCD码转字符串C函数,定义好的函数下载即可使用无需更改。

    C# 字符串转十六进制串,16进制反向转回原字符串

    一、字符串转十六进制串 要将字符串转换为十六进制串,我们需要对字符串中的每个字符进行编码,然后将编码结果转换成十六进制字符串。C#提供了`BitConverter`类和`ToString`方法来完成这个任务: ```csharp public...

    字符串转换器(字符串转10/16进制).rar

    软件介绍: 字符串转换器可以进行10进制转2进制转换,10进制转8进制/16进制转换。16进制转2进制或8进制10...字符串转10进制16进制,字符串转Unicode或Delphi DFM字符串。转换前选择一下要使用的转换模式转换即可。

    CLOB 字段类型报错 ORA-01704: 文字字符串过长的解决

    然而,当你尝试向CLOB字段插入数据时,如果超过了Oracle规定的最大限制,就会遇到“ORA-01704: 文字字符串过长”的错误。这个错误通常意味着你试图插入的字符串超过了Oracle数据库允许的最大长度,对于VARCHAR2类型...

    关于面试题目中回环字符串的解答

    回环字符串,也称为环状字符串或循环字符串,是指可以通过将字符串的一部分移动到字符串的开头,使得整个字符串形成一个环状结构的字符串。在给定的代码中,我们有两个主要的函数`isok()`和两个辅助函数`addhead()`...

    C语言基础面试题(03-字符串函数).docx

    C语言中的字符串处理是编程面试中的常见主题,尤其是在嵌入式系统或底层开发相关的面试中。下面我们将深入探讨一些基于`string.h`库的常用字符串函数,并提供一些问题的解决方案。 1. **字符串函数** - `strlen`: ...

    Android存储字符串数据到txt文件

    "Android存储字符串数据到txt文件" Android存储字符串数据到txt文件是Android开发中的一种常见需求,对于大多数开发者来说,存储字符串数据到txt文件是一种非常有用的功能。今天,我们将详细介绍如何在Android中...

    JSON格式化/字符串格式转换

    3、BASE64转字符串:与字符串转BASE64功能相反,软件可以将BASE64编码的字符串还原为原始字符串,方便用户查看和使用。 4、字符串转HEX:将字符串转换为HEX编码,可以用于加密、签名等场景。软件提供了一键转换功能...

    整形和字符串的各种转换

    本文将详细介绍整形和字符串之间的各种转换,包括整形到字符串、字符串到整形、字符串到字符数组、字符数组到字符串、不同的进制之间的转换等。 整形到字符串的转换 在Java中,我们可以使用String.valueOf()方法将...

    Android relaceALL替换字符串中的反斜杠

    在Android开发中,有时我们需要对字符串进行操作,例如替换特定字符。`replaceAll`函数就是Java(也是Android)中处理字符串替换的一个重要方法。这个方法来自`String`类,允许我们用新的字符串替换掉原字符串中匹配...

    C语言经典例子-删除字符串中指定的字符详解.docx

    删除字符串中的字符1 题目删除一个字符串中的指定字母,如:字符串 “aca”,删除其中的 a 字母。2 分析本题是要处理字符串,在C语言中,我们把他转换为字符数组,则本质是要处理数组,在数组中删除某一元素的最简单...

    Labview 字符串转ASCII字符串

    Labview 字符串转ASCII字符串,比如:“123”-&gt;"313233",“abc”-&gt;"616263

Global site tag (gtag.js) - Google Analytics