`
daojin
  • 浏览: 690249 次
  • 性别: 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进制之间的转换。 首先,我们要明白...

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

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

    华为机试题:压缩字符串

    通过键盘输入一串小写字母(a~z)组成的字符串,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串。 压缩字段的格式为"字符重复的次数+字符"。例如:字符串"xxxyyyyyyz"压缩后就成为"3x6yz"。 要求实现...

    Android字符串运算的计算器

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    整形和字符串的各种转换

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

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

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

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

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

    Python 编程难题:字符串练习.pptx

    Python 编程难题:字符串练习是一个关于 Python 编程语言的难题题目,旨在检查给定列表中第 n-1 个字符串是否是第 n 个字符串的适当子字符串。下面是该难题的详细解释和解决方案。 问题描述 给定一个字符串列表,...

    c#中 base64字符串与普通字符串互转

    总结,C#中的Base64字符串与普通字符串互转是通过`System.Convert`类提供的`ToBase64String`和`FromBase64String`方法实现的。在进行转换时,需要确保对字符串的编码有准确的理解,以便正确地转换和还原。在实际应用...

    1.7编程基础之字符串(30题)--题目 有链接.pdf

    标题中提到的“1.7编程基础之字符串(30题)--题目 有链接.pdf”指明了这份资料是一本关于编程基础的题集,专注于字符串相关的编程题目,并且这些题目可以在提供的链接中找到。由于文件内容中提到了多个编程题目,我们...

Global site tag (gtag.js) - Google Analytics