把变通数字串、带小数点形式和带E形式的字符串转化为长整形,考虑可能欠全面,请大家指点。
/**
* 字符串转化为long,不考虑浮点数可能出现的四舍五入问题
* @param str 字符串的格式:"123"\"23.23"\".12"\"23."\"23.3E3"\".2E3"\
* @return
*/
public long string2Long(String str){
long result = 0;
String regex1 = "\\d+";
String regex2 = "\\d*\\.\\d*";
String regex3 = "\\d*[.]?\\d+[eE]\\d*";
if(Pattern.matches(regex1, str)){
result = Long.parseLong(str);
}else if(Pattern.matches(regex2, str)){
int index = str.indexOf(".");
if(index == 0){
result = 0;
}else{
str = str.substring(0, index);
result = Long.parseLong(str);
}
}else if(Pattern.matches(regex3, str)){
int index = 0;
String exp = "0";
if(str.contains("e")){
index = str.indexOf("e");
str = str.substring(0, index);
exp = str.substring(index + 1);
}else if(str.contains("E")){
index = str.indexOf("E");
if(index < str.length()){
exp = str.substring(index + 1);
}
str = str.substring(0, index);
}
if(str == null){
result = 0;
}else{
double pre = Double.parseDouble(str);
long lexp = Long.parseLong(exp);
result = new Double(pre * Math.pow(10, lexp)).longValue();
}
}else{
throw new RuntimeException("格式错误");
}
return result;
}
分享到:
相关推荐
### Java 获取随机字符串 在Java开发中,生成随机字符串是一个非常常见的需求,尤其是在密码学、安全验证、数据加密等场景中。本文将详细介绍如何在Java中生成随机字符串,并且会结合给定的部分代码示例进行深入...
`StringTokenizer` 是Java中用于解析字符串的一个实用类,它可以按照指定的分隔符将字符串分割成多个部分。下面是一个简单的示例: ```java import java.util.StringTokenizer; public class Test { public ...
JAVA数组与字符串详解 JAVA中的数组是用一个变量名表示一组相同性质的数据,每个数据称为数组元素,各元素通过下标来区分。如果用一个下标就能确定数组中的不同元素,这种数组称为一维数组,否则称为多维数组。 1....
例如,`JSONObject`和`JSONArray`类用于创建和解析JSON对象和数组,`toString()`方法将Java对象转化为JSON字符串,`get()`和`put()`方法用于获取和设置JSON对象的键值对。 2. **Java日期转换**: Java中的日期和...
在Java编程语言中,String类是处理文本字符串的核心类,而与各种进制字符之间的转换是常见的编程需求。本文将详细探讨Java中如何进行String与二进制、八进制、十进制以及十六进制之间的转换。 首先,我们要了解进制...
例如,将数字转换为字符串,或将字符串形式的数字解析为整型或浮点型数值。在HTML生成过程中,有时需要将数字数据转化为特定格式的字符串,以便在网页上显示,或者在处理用户输入时,将表单中的字符串值转换回数值...
例如,当需要进行数学计算时,可能需要将字符串类型的数字转换为整型或浮点型。在Java中,可以使用Integer.parseInt()或Double.parseDouble()方法进行转换;在Python中,可以使用int()或float()函数。转换过程中要...
- `valueOf(long)`: 将长整型转换为字符串。 - `valueOf(float)`: 将浮点型转换为字符串。 - `valueOf(double)`: 将双精度浮点型转换为字符串。 示例: ```java String s = String.valueOf(100); System.out....
- **转换为其他类型**:`parseInt()` 或 `parseFloat()` 可将字符串转换为整型或浮点型数值。 6. **字符串的连接** - **concat()** 方法用于连接两个字符串,如 `str1.concat(str2)`。 - **+ 操作符**:也可用于...
### 公式解析类(字符串公式,自定义函数公式) #### 概述 本文将详细介绍一个公式解析类,该类能够处理字符串公式以及自定义函数公式。此类在数学计算、数据分析等领域有着广泛的应用,比如在电子表格软件或编程语言...
在Java中,词法分析器会识别诸如"int"(整型)、"+"(加法运算符)和"String"(字符串类型)这样的标识符。词法分析器的工作是基于预定义的规则,这些规则定义了源代码的字符序列如何映射到词法单元。例如,一个简单...
在Java编程语言中,字符串(String)和基本数据类型之间的转换是常见的操作,特别是在处理用户输入、格式化输出或解析数据时。以下将详细介绍如何在Java中进行这些转换。 1. **字符串转基本数据类型** - **整型(int...
在Java中,可以将位图表示为一个长整型数组,通过位运算来判断各个字段是否存在。 2. **字段解析**:根据位图,逐个解析每个字段,如交易类型(MTI)、商户标识码(MID)、交易金额、交易日期等。每个字段可能需要...
例如,我们可以定义一个包含整型、浮点型和字符串的结构体,然后在C程序中创建该结构体的实例并填充数据。当通过socket进行通信时,C程序会将结构体数据序列化为二进制流,并发送到网络。 在Java端解析C语言结构体...
2. **将字符串转换为长整型**: - `Long.parseLong(str)`: 用于将字符串转换为long类型,如`str = "1234567890"`,`long num = Long.parseLong(str)`。 - `Long.valueOf(str)`: 同样,返回一个Long对象。 3. **将...
给定的两个字符串分别为 `"qwerabcdtyuiop"` 和 `"xcabcdvbn"`。目标是找出这两个字符串中的最长相同子串。 #### 解决方案分析 ##### 方法概述 为了找到两个字符串中最长的相同子串,程序采用了以下步骤: 1. **...
### 知识点三:解析字符串构建二维数组 #### 核心概念 在Java中,可以通过字符串分割操作将一个包含多行数据的字符串转换成二维数组。具体地,首先按照分隔符(如`;`)将字符串分割成多个子字符串,再对每个子字符...
本文将根据提供的代码示例,详细解析如何在Java程序中统计一个字符串中各个字符(包括汉字)出现的次数。该方法适用于任何包含字符的字符串,无论这些字符是英文字母、数字还是汉字。 #### 代码实现细节 1. **导入...
首先,`StringUtilSplit.java`可能是一个实现字符串处理的类,其中包含了以逗号为分隔符分割字符串的方法。在处理CSV(逗号分隔值)文件时,这种功能非常实用,因为CSV格式广泛用于数据交换,其中字段可能由逗号分隔...