-
2021-03-18 12:20:22
字符串转换为整数:
public static void main(String[] args) {
String test = "445";
int number = Integer.parseInt(test);
System.out.println(number);
}
public static void main(String[] args) {
String test = "445";
int number = Integer.valueOf(test);
System.out.println(number);
}
如果输入的字符串中不是有效的整数时,会出现java.lang.NumberFormatException:异常:
public static void main(String[] args) {
String test = "过河";
int number = Integer.valueOf(test);
System.out.println(number);
}
异常信息:
Exception in thread "main" java.lang.NumberFormatException: For input string: "过河"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:580)
at java.lang.Integer.valueOf(Integer.java:766)
at com.mmall.util.PropertiesUtil.main(PropertiesUtil.java:41)
整数转为字符串:
public static void main(String[] args) {
int number = 445;
String test = Integer.toString(number);
System.out.println(test);
}
public static void main(String[] args) {
int number = 445;
String test = String.valueOf(number);
System.out.println(test);
}
更多相关内容 -
java判断字符串是正整数的实例
2020-08-27 04:59:17今天小编就为大家分享一篇java判断字符串是正整数的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧 -
java把字符串转换成整数
2021-05-06 09:37:28将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0 eg: 输入: “+2147483647” 输出: 2147483647 eg: 输入: “1a33” 输出: 0 以下是本...
题目描述
将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。
数值为0或者字符串不是一个合法的数值则返回0eg:
输入:
“+2147483647”输出:
2147483647eg:
输入:
“1a33”输出:
0
以下是本篇文章正文内容,下面案例可供参考
解题思路
此题一共有三种情况:
- 字符数字(eg:123)
sum = sum * 10 + chs[i] - '0'
- 带符号的字符数字(eg:+/-)
将符号位做标记,最后置首位为0,不影响结果
if (chs[0] == '-') { flg = -1; chs[0] = '0'; } else if (chs[0] == '+') { flg = 1; chs[0] = '0'; }
- 非法的(eg:1a23)
当字符数组遍历到非数字字符时,break
,置sum
为0,否则就会返回之前的sum
值
if (chs[i] > '9' && chs[i] < '0') { sum = 0; break; }
代码如下
import java.util.*; public class Main { public int StrToInt(String str) { char[] chs = str.toCharArray(); if (chs == null || chs.length == 0) { return 0; } int flg = 1; if (chs[0] == '-') { flg = -1; chs[0] = '0'; } else if (chs[0] == '+') { flg = 1; chs[0] = '0'; } int sum = 0; for (int i = 0; i < str.length(); i++) { if (chs[i] > '9' && chs[i] < '0') { sum = 0; break; } sum = sum * 10 + chs[i] - '0'; } return flg * sum;//返回int类型 } }
-
【JAVA】字符串转换整数 (atoi)
2022-01-16 14:45:22请你来实现一个 myAtoi(string s) 函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C++ 中的 atoi 函数)。 函数 myAtoi(string s) 的算法如下: ...将前面步骤读入的这些数字转换为整数(即,"123请你来实现一个 myAtoi(string s) 函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C++ 中的 atoi 函数)。
函数 myAtoi(string s) 的算法如下:
读入字符串并丢弃无用的前导空格
检查下一个字符(假设还未到字符末尾)为正还是负号,读取该字符(如果有)。 确定最终结果是负数还是正数。 如果两者都不存在,则假定结果为正。
读入下一个字符,直到到达下一个非数字字符或到达输入的结尾。字符串的其余部分将被忽略。
将前面步骤读入的这些数字转换为整数(即,"123" -> 123, "0032" -> 32)。如果没有读入数字,则整数为 0 。必要时更改符号(从步骤 2 开始)。
如果整数数超过 32 位有符号整数范围 [−231, 231 − 1] ,需要截断这个整数,使其保持在这个范围内。具体来说,小于 −231 的整数应该被固定为 −231 ,大于 231 − 1 的整数应该被固定为 231 − 1 。
返回整数作为最终结果。
注意:本题中的空白字符只包括空格字符 ' ' 。
除前导空格或数字后的其余字符串外,请勿忽略 任何其他字符输入:s = "42"
输出:42
解释:加粗的字符串为已经读入的字符,插入符号是当前读取的字符。
第 1 步:"42"(当前没有读入字符,因为没有前导空格)
^
第 2 步:"42"(当前没有读入字符,因为这里不存在 '-' 或者 '+')
^
第 3 步:"42"(读入 "42")
^
解析得到整数 42 。
由于 "42" 在范围 [-231, 231 - 1] 内,最终结果为 42 。输入:s = " -42"
输出:-42
解释:
第 1 步:" -42"(读入前导空格,但忽视掉)
^
第 2 步:" -42"(读入 '-' 字符,所以结果应该是负数)
^
第 3 步:" -42"(读入 "42")
^
解析得到整数 -42 。
由于 "-42" 在范围 [-231, 231 - 1] 内,最终结果为 -42 。输入:s = "4193 with words"
输出:4193
解释:
第 1 步:"4193 with words"(当前没有读入字符,因为没有前导空格)
^
第 2 步:"4193 with words"(当前没有读入字符,因为这里不存在 '-' 或者 '+')
^
第 3 步:"4193 with words"(读入 "4193";由于下一个字符不是一个数字,所以读入停止)
^
解析得到整数 4193 。
由于 "4193" 在范围 [-231, 231 - 1] 内,最终结果为 4193 。输入:s = "words and 987"
输出:0
解释:
第 1 步:"words and 987"(当前没有读入字符,因为没有前导空格)
^
第 2 步:"words and 987"(当前没有读入字符,因为这里不存在 '-' 或者 '+')
^
第 3 步:"words and 987"(由于当前字符 'w' 不是一个数字,所以读入停止)
^
解析得到整数 0 ,因为没有读入任何数字。
由于 0 在范围 [-231, 231 - 1] 内,最终结果为 0 。输入:s = "-91283472332"
输出:-2147483648
解释:
第 1 步:"-91283472332"(当前没有读入字符,因为没有前导空格)
^
第 2 步:"-91283472332"(读入 '-' 字符,所以结果应该是负数)
^
第 3 步:"-91283472332"(读入 "91283472332")
^
解析得到整数 -91283472332 。
由于 -91283472332 小于范围 [-231, 231 - 1] 的下界,最终结果被截断为 -231 = -2147483648 。class Solution { public int myAtoi(String s) { s=s.trim(); if(s==null || s.length()==0) return 0; int index=0,res=0,type=1; if(s.charAt(index)=='-' || s.charAt(index)=='+') type=s.charAt(index++)=='+'?1:-1; for(;index<s.length();++index){ int t=s.charAt(index)-'0'; if(t<0 || t>9) break; if(res>Integer.MAX_VALUE/10 || (res==Integer.MAX_VALUE/10&&t > Integer.MAX_VALUE%10)) return type==1 ? Integer.MAX_VALUE : Integer.MIN_VALUE; else res=res*10+t; } return type*res; } }
-
Java实现字符串转换成整数
2019-07-21 14:52:11输入一个由数字组成的字符串,请把它转换成整数并输出。例如,输入字符串“123”,输出整数123。 请写出一个函数实现该功能,不能使用库函数。 2 解决方案 解答本问题的基本思路:从左至右扫描字符串中的每个字符,...1 问题描述
输入一个由数字组成的字符串,请把它转换成整数并输出。例如,输入字符串“123”,输出整数123。请写出一个函数实现该功能,不能使用库函数。
2 解决方案
解答本问题的基本思路:从左至右扫描字符串中的每个字符,把之前扫描得到的数字乘以10,再加上当前字符表示的数字。但是,基本思路是这样,还要注意以下几点:
(1)最好判断一下输入是否为空。
(2)如果字符串的第一个字符是‘-’号,最终得到的整数必为负整数。
(3)输入的字符串中不能含有不是数字的字符。
(4)输入的字符串不能太长,否则转换成整数后会导致整数溢出。
package com.liuzhen.string_1; import java.util.Scanner; public class StringToInt { public static int Max_INT = Integer.MAX_VALUE; public static int Min_INT = Integer.MIN_VALUE; public int getStringToInt(String A){ char[] arrayA = A.toCharArray(); int n = 0; if(A.equals("") || A.equals(null)) //判断输入是否为空 return 0; int i = 0; while(arrayA[i] == ' ') //处理字符串首位的空格 i++; int sign = 1; //用于判定输入字符串数字的正负,初始化为1表示为正数 if(arrayA[i] == '+' || arrayA[i] == '-'){ if(arrayA[i] == '-') sign = -1; i++; } while(i < arrayA.length && Character.isDigit(arrayA[i])){ //确定是数字0~9才执行循环 int c = arrayA[i] - '0'; //当输入字符串表示数为正数,且大于Max_INT if(sign > 0 && (n > Max_INT/10 || (n == Max_INT/10 && c > Max_INT%10))){ n = Max_INT; break; } //当输入字符串表示数为负数,且小于Min_INT if(sign < 0 && (n + Min_INT/10 > 0 || (n + Min_INT/10 == 0 && c + Min_INT%10 > 0))){ n = Min_INT; break; } //把之前得到的数字乘以10,再加上 当前字符表示的数字 n = n*10 + c; i++; } return sign > 0 ? n : -n; } public static void main(String[] args){ StringToInt test = new StringToInt(); Scanner in = new Scanner(System.in); System.out.println("请输入一个由数字组成的字符串:"); String A = in.nextLine(); int result = test.getStringToInt(A); System.out.println("整数result = "+result); } }
运行结果:
请输入一个由数字组成的字符串: -1000 整数result = -1000 请输入一个由数字组成的字符串: +100000 整数result = 100000 请输入一个由数字组成的字符串: a1212 整数result = 0 请输入一个由数字组成的字符串: 整数result = 2147483647 请输入一个由数字组成的字符串: -10000000000 整数result = -2147483648
-
JAVA中字符串数据转换为整数 java.lang.NumberFormatException
2022-02-05 15:17:03JAVA中字符串数据转换为整数型数据时出现 java.lang.NumberFormatException 异常 数字格式异常,检查一下: 1.输入的字符串中是否含有不是数字的字符,转换时输入的字符串中不能含有不是数字的字符 2.第一个字符... -
Java 实现把字符串转换成整数
2021-03-13 21:40:36将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0 。输入一个字符串,包括数字字母符号,可以为空;如果是合法的数值表达则返回该数字,否则返回0;... -
Java判断字符串是不是整数
2021-12-22 13:39:23在Java中,在使用Integer.parseInt(value)将字符串转为Integer类型时,如果没转成功,程序会出现异常,我们利用这个原理,可以将出现异常的归类为不是整数,未出现异常的归类为整数 代码 /** * 判断字符串是否是... -
【Java】将字符串转化为整数
2021-02-12 15:24:58前几天面试遇到这个问题:在Java中如何将字符串转化为整数,当时too young too naive,随便回答了一下。今天跑去看Java源码中paresInt函数的写法,Oh my god!其实不看也能写出来,但是我觉得源码中的实现更好。下面... -
把字符串转换成整数
2021-03-22 17:53:33将一个字符串转换成一个整数,字符串不是一个合法的数值则返回 0,要求不能使用字符串转换整数的库函数。Iuput:+21474836471a33Output:21474836470这看起来是很简单的题目,实现基本功能 ,大部分人都能用10行之内的... -
在Java中将字符串列表转换为整数列表的程序
2021-04-22 18:35:42这是我们的字符串列表-ListlistString=Arrays.asList("25","50",...现在,将字符串列表转换为整数列表-ListlistInteger=listString.stream().map(Integer::parseInt).collect(Collectors.toList());以下是在Java中将... -
JAVA练习109-把字符串转换成整数
2022-02-11 19:17:27写一个函数 StrToInt,实现把字符串转换成整数这个功能。不能使用 atoi 或者其他类似的库函数。 首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。 当我们寻找到的第一个非空... -
在Java中将字符串集合转换为整数集合的程序
2021-04-17 09:51:39假设以下是我们的字符串集-SetsetStr=newHashSet<>(Arrays.asList("50","100","150","200","250",...现在,将其转换为整数集-SetsetInteger=setStr.stream().map(s->Integer.parseInt(s)).collect(Colle... -
java如何将字符串转换成整数
2021-03-08 06:21:54Java将字符串转换成整数的方法:首先,输入数字字符串;然后,代码是[字符串s = & quot123456;int b = Integer . Parseint(s);】。本教程的操作环境:windows7系统,java10版本10,DELL G3电脑。此方法适用于... -
字符串转换整数(java)
2019-12-05 19:13:328.字符串转换整数 题目 请你来实现一个 atoi 函数,使其能将字符串转换成整数。 首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。 当我们寻找到的第一个非空字符为正或者负号时,... -
Java判断字符串是否是整数
2021-04-29 12:53:39isDigit函数只能判断一个字符,判断字符串需要对所有字符分别判断 Integer.parseInt()函数可以直接转换,Integer.parseInt()是把()里的内容转换成整数。Integer.parseInt(String)遇到一些不能被转换为整型的字符时... -
字符串转成整数(Java)
2021-03-05 17:00:35/*题目描述将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0输入描述:输入一个字符串,包括数字字母符号,可以为空返回值描述:如果是合法的数值表达则... -
对Java字符串与整形、浮点类型之间的相互转换方法总结
2020-08-27 04:38:25今天小编就为大家分享一篇对Java字符串与整形、浮点类型之间的相互转换方法总结,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧 -
字符串转换整数python_Python将字符串转换为整数
2020-09-14 18:32:43字符串转换整数pythonIn this tutorial you’ll see two ways ... 在本教程中,您将看到在python中将字符串转换为整数的两种方法。 As we know we don’t have to declare the datatype while declaring variables... -
JAVA把字符串转换成整数
2019-03-14 18:35:13剑指offer: 将一个字符串转换成一个整数(实现Integer.valueOf(string)的功能,但是string不符合数字要求时返回0),要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0。 public ... -
用java实现输入数字字符串,转换为整数或浮点数
2020-12-14 23:13:56输入数字字符串,转换为整数或浮点数 package day02; import java.util.Scanner; /** * Created by lenovo on 2020/12/14. * 输入数字字符串,转换为整数或浮点数 */ public class homework2 { public static ... -
java-字符串转换整数并捕获异常
2021-03-07 21:49:01//将自字符串放进数组 for(i=0;i if(stringArr[i]||stringArr[i]>57) { throw new MathException(); //抛出异常 } } System.out.println(String.valueOf(t)); } public static void main(String args[]) { try { ... -
java二进制字符串转整数
2021-06-03 21:46:17Java Integer API: Integer.parseInt(String s, int radix) 所以如果是二进制可以写成: int num = Integer.parseInt("1000011", 2); 引用: ... -
Java每日一题——把字符串转换成整数
2022-04-24 23:52:04将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为 0 或者字符串不是一个合法的数值则返回 0 数据范围:字符串长度满足 0 \le n \le 100 \0≤n≤100 进阶:空间复杂度 O(1) \O(1) ,时间... -
浅谈java中字符串数组、字符串、整形之间的转换
2021-03-08 00:40:34字符串数组转字符串(只能通过for循环):string[] str = {"abc", "bcd", "def"};stringbuffer sb = new stringbuffer();for (int i = 0; i < str.length;i++){sb.append(str[i]);}string s = sb.tostring();字符... -
java中将字符串(String)转换为整型
2021-02-12 19:45:20字符串(String)转换为整型我们在开发中常用到了因为java是一个非常严格编程语言了所以对数据类型要求也非常的严了,今天我们来看一些关于字符串(String)转换为整型例子吧。String转换为整型1.使用Intger.parseInt... -
字符串转换整数python_将Python字符串转换为Int:如何在Python中将字符串转换为整数
2020-08-14 02:12:45字符串转换整数pythonUnlike many other programming languages out there, Python does not implicitly typecast integers (or floats) to strings when you concatenate them to strings. 与现有的许多其他编程... -
如何在Java中将二进制字符串转换为基数10整数
2021-03-01 08:24:45如果您正在处理正数但是如果您需要处理有符号数字,则可能需要签名扩展您的字符串然后转换为Intpublic class bit_fun {public static void main(String[] args) {int x= (int)Long.parseLong("FFFFFFFF", 16);...