精华内容
下载资源
问答
  • java中字符串整数相互转换
    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判断字符串是正整数的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值0或者字符串不是一个合法的数值则返回0 eg: 输入: “+2147483647” 输出: 2147483647 eg: 输入: “1a33” 输出: 0 以下是本...


    题目描述

    将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。
    数值为0或者字符串不是一个合法的数值则返回0

    eg:

    输入:
    “+2147483647”

    输出:
    2147483647

    eg:

    输入:
    “1a33”

    输出:
    0


    以下是本篇文章正文内容,下面案例可供参考

    解题思路

    此题一共有三种情况:

    1. 字符数字(eg:123)
    	sum = sum * 10 + chs[i] - '0'
    
    1. 带符号的字符数字(eg:+/-)
      将符号位做标记,最后置首位为0,不影响结果
    		if (chs[0] == '-') {
                flg = -1;
                chs[0] = '0';
            } else if (chs[0] == '+') {
                flg = 1;
                chs[0] = '0';
            }
    
    1. 非法的(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类型
        }
    }
    

    展开全文
  • 请你来实现一个 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 异常 数字格式异常,检查一下: 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行之内的...
  • 这是我们的字符串列表-ListlistString=Arrays.asList("25","50",...现在,将字符串列表转换为整数列表-ListlistInteger=listString.stream().map(Integer::parseInt).collect(Collectors.toList());以下是在Java中将...
  • 写一个函数 StrToInt,实现把字符串转换整数这个功能。不能使用 atoi 或者其他类似的库函数。 首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。 当我们寻找到的第一个非空...
  • 假设以下是我们的字符串集-SetsetStr=newHashSet<>(Arrays.asList("50","100","150","200","250",...现在,将其转换为整数集-SetsetInteger=setStr.stream().map(s->Integer.parseInt(s)).collect(Colle...
  • Java字符串转换整数的方法:首先,输入数字字符串;然后,代码是[字符串s = & quot123456;int b = Integer . Parseint(s);】。本教程的操作环境:windows7系统,java10版本10,DELL G3电脑。此方法适用于...
  • 8.字符串转换整数 题目 请你来实现一个 atoi 函数,使其能将字符串转换整数。 首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。 当我们寻找到的第一个非空字符正或者负号时,...
  • isDigit函数只能判断一个字符,判断字符串需要对所有字符分别判断 Integer.parseInt()函数可以直接转换,Integer.parseInt()是把()里的内容转换成整数。Integer.parseInt(String)遇到一些不能被转换为整型的字符时...
  • 字符串转成整数(Java)

    2021-03-05 17:00:35
    /*题目描述将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值0或者字符串不是一个合法的数值则返回0输入描述:输入一个字符串,包括数字字母符号,可以空返回值描述:如果是合法的数值表达则...
  • 今天小编就大家分享一篇对Java字符串与整形、浮点类型之间的相互转换方法总结,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 字符串转换整数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 ...
  • 输入数字字符串转换为整数或浮点数 package day02; import java.util.Scanner; /** * Created by lenovo on 2020/12/14. * 输入数字字符串转换为整数或浮点数 */ public class homework2 { public static ...
  • //将自字符串放进数组 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 Integer API: Integer.parseInt​(String s, int radix) 所以如果是二进制可以写成: int num = Integer.parseInt​("1000011", 2); 引用: ...
  • 将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值 0 或者字符串不是一个合法的数值则返回 0 数据范围:字符串长度满足 0 \le n \le 100 \0≤n≤100 进阶:空间复杂度 O(1) \O(1) ,时间...
  • 字符串数组转字符串(只能通过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...
  • 字符串转换整数pythonUnlike many other programming languages out there, Python does not implicitly typecast integers (or floats) to strings when you concatenate them to strings. 与现有的许多其他编程...
  • 如果您正在处理正数但是如果您需要处理有符号数字,则可能需要签名扩展您的字符串然后转换为Intpublic class bit_fun {public static void main(String[] args) {int x= (int)Long.parseLong("FFFFFFFF", 16);...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 178,734
精华内容 71,493
关键字:

java中字符串转为整数

java 订阅