`
daojin
  • 浏览: 692081 次
  • 性别: 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
分享到:
评论

相关推荐

    android字符串和16进制转换

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

    1138:将字符串中的小写字母转换成大写字母.cpp

    1138:将字符串中的小写字母转换成大写字母 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 54809 通过数: 25241 【题目描述】 给定一个字符串,将其中所有的小写字母转换成大写字母。 【输入】 输入一行,包含一...

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

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

    Python:字符串转数字

    python字符串转数字

    Android字符串运算的计算器

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

    androidmap转json字符串、list转json字符串工具类.zip

    在Android开发中,数据转换是常见的操作之一,特别是在网络请求和本地存储之间交换数据时。本压缩包提供了两个关键功能:将Map对象转换为JSON字符串和将List对象转换为JSON字符串。这两个工具类对于Android开发者来...

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

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

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

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

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

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

    字符串面试题整理

    以下是一些与字符串相关的面试题目及其解题思路: 1. **字符串循环左移**:给定一个字符串和一个整数k,将字符串中的每个字符向左移动k个位置。例如,字符串"abcdefg",k=2,移动后的结果为"efgabcd"。可以使用双...

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

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

    2010笔面试专栏一:字符串[借鉴].pdf

    在面试或笔试中,遇到类似的字符串处理问题时,首先要理解题目的需求,明确操作的对象和目标,然后选择合适的数据结构和算法来解决问题。对于字符编码的处理,要熟悉ASCII码表,了解字符与数值之间的关系。在编写...

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

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

    详解C++中十六进制字符串转数字(数值)

    详解C++中十六进制字符串转数字(数值) 主要有两个方法,其实都是对现有函数的使用:  方法1: sscanf()  函数名: sscanf 功 能: 从字符串格式化输入 用 法: int sscanf(char *string, char *format[,...

    整形和字符串的各种转换

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

    asp字符串转json对象类

    题目中提到的"asp字符串转json对象类"就是这样一个功能,它允许开发者将JSON格式的字符串转换为VBScript可以操作的对象。 在VBScript中,对象的属性通常通过"obj.property"的方式访问,但根据描述,这里的JSON对象...

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

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

    西门子PLC字符串转实数

    在编程过程中,我们经常会遇到需要将从外部设备读取的字符串数据转换为实数的情况,以便进行数值计算和处理。本文将深入探讨如何在西门子PLC中实现字符串到实数的转换,并提供相关的编程技巧。 一、字符串与实数的...

    javascript实现的字符串与十六进制表示字符串相互转换方法

    之所以写这个,是因为发现SQL注入和XSS中经常利用十六进制表示的字符串,比如 SELECT CONCAT(0x68656c6c6f); 得到的是hello &lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;title&gt;Hex-Char Bi-Converter&...

    Labview 字符串转ASCII字符串

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

Global site tag (gtag.js) - Google Analytics