精华内容
下载资源
问答
  • 2022-03-22 21:10:14

     使用Interger类的相关方法

            String s = "222";
            Integer i1 = Integer.valueOf(s);
            Integer i2 = new Integer(s);
            Integer i3 = Integer.parseInt(s);
    //        以上三方法可将数字字符串转化为Integer数值型,得到整型的222
    
            Integer i4 = s.charAt(0)-'0';
    //        此方法可取数字字符串的具体某个数字的值,得到整形的2
    
            Integer i5 = new Integer(s.charAt(0));
    //        此方法得到的是数字字符对应的ASCII码,在这里字符'2'对应的是50

    更多相关内容
  • 主要介绍了Java判断字符串为空、字符串是否为数字,其中数字的判断介绍了3种方法,需要的朋友可以参考下
  • 编辑:澄清任何有效的数字编码从字符串转换为数字对于所有接受的整数格式,尤其是在Integer.parseInt下引发NumberFormatException的格式,如何将字符串转换为数字,例如仅整数转换为数字。例如,代码...int i = ...

    编辑:澄清将任何有效的数字编码从字符串转换为数字

    对于所有接受的整数格式,尤其是在Integer.parseInt下引发NumberFormatException的格式,如何将字符串转换为数字,例如仅将整数转换为数字。例如,代码

    ...

    int i = 0xff;

    System.out.println(i);

    String s ="0xff";

    System.out.println( Integer.parseInt(s) );

    ....

    即使该字符串显然是十六进制整数的有效编码,也将在第四行抛出NumberFormatException。我们可以假设我们已经知道该编码是有效数字,例如通过将其与正则表达式进行比较来也可以检查溢出(就像Integer.parseInt一样),但是如果必须将其作为一个单独的步骤来完成,那也可以。

    我可以遍历每个数字并手动计算合成,但这将非常困难。有没有更好的办法?

    编辑:很多人都在以十六进制来回答这个问题,这很好,但并非完全是我所要的(这是我的错,我以十六进制为例)。我想知道是否有一种方法可以解码所有有效的Java数字。 Long.decode绝对适合捕获十六进制,但是在

    222222L

    这是一个完全有效的时长。我是否必须分别捕捉每种不同的数字格式?我假设您已经使用了一个正则表达式来告诉它是数字的哪一类,即区分浮点数,整数等。

    这有帮助吗? stackoverflow.com/questions/5153811/

    如果放置0x,则可以调用Integer.parseInt(s, 16)。

    @ dg123确实对十六进制有所帮助,但通常无法解决问题-例如,不会捕获111_111_111或1111111L。

    @Blorgbeard这也不是一般的解决方案。我当然可以手动检查所有情况,尽管这确实是检查十六进制数字的好方法

    @en_Knight这里没有解决方案,因为您的输入String可以是多种数字格式,需要不同的转换方法。希望以一种格式一致地产生输入String

    不要将数字与数字文字混淆。后者只是语法糖。

    @Reimus hmm是正确的,即使知道数字的类型,因为我知道它是整数,long,float等?在JLS中,每种格式只有少数几种枚举格式-没有解码它们的方法吗?

    @Sotirios Delimanolis的好电话-我是否删除了错误?

    @en_Knight不是,如果您使用的是类似Long文字的东西...

    您总是可以编写一个解析器(或者可能只是一个正则表达式)来解析您想要的任何内容...

    你可以做

    System.out.println(Integer.decode(s));

    这是100%的方法!

    值得注意的是,这仅适用于代表正整数的十六进制值。 例如:System.out.println(Integer.decode("0xfffffff4"));将抛出NumberFormatException。

    这仅适用于十六进制,但不会解码所有整数。 例如,111_111_111是有效的整数,但是将引发数字格式异常

    您需要指定要解析的数字的基数:

    Integer.parseInt(s,16);

    如果您使用"0x"将其启动,则此操作将失败,因此您只需添加一个检查即可:

    if (s.startsWith("0x")) {

    s = s.substring(2);

    }

    Integer.parseInt(s,16);

    编辑

    根据有关这不是十六进制特定问题的信息,我建议您编写自己的方法以解析出您喜欢的所有数字格式,并建立在Integer.decode之上,这样可以避免处理几种情况 。

    我会说使用regex或创建自己的方法来验证其他格式:

    public static int manualDecode(String s) throws NumberFormatException {

    // Match against #####L long format

    Pattern p = Pattern.compile("\\d+L");  // Matches ########L

    Matcher m = p.matcher(s);

    if (m.matches()) {

    return Integer.decode(s.substring(0,s.length()-1));

    }

    // Match against that weird underscore format

    p = Pattern.compile("(\\d{1,3})_((\\d{3})_)*?(\\d{3})"); // Matches ###_###_###_###_###

    m = p.matcher(s);

    if (m.matches()) {

    String reformattedString ="";

    char c;

    for (int i = 0; i < s.length(); i++) {

    c = s.charAt(i);

    if ( c >= '0' && c <= '9') {

    reformattedString += c;

    }

    }

    return Integer.decode(reformattedString);

    }

    // Add as many more as you wish

    throw new NumberFormatException();

    }

    public int parseIntExtended(String s) {

    try {

    return Integer.decode(s);

    } catch (NumberFormatException e) {

    return manualDecode(s);

    }

    }

    并从字符串中删除0x

    @ZouZou我对此进行了修改

    如果您这样做,Parseint似乎会捕获十六进制,但不会捕获111_111_111,这是有效的整数文字

    @en_Knight我刚刚看到您对此所做的编辑不是特定于十六进制的。

    @en_Knight我对您应该阅读的答案进行了编辑。

    您也可以尝试使用BigInteger,但必须先删除0x或从0替换x

    int val = new BigInteger("ff", 16).intValue(); // output 255

    Integer.decode应该可以解决问题:

    public class a{

    public static void main(String[] args){

    String s="0xff";

    System.out.println(Integer.decode(s));

    }

    }

    展开全文
  • 在编程中我们经常需要进行各种数据类型之间的转换操作,下面为您介绍如何将字符串转换为数字。首先我们需要了解各种数据类型的表示,String在java中为字符串类型,int在java中为整数类型,大小在-2147483648到...

    在编程中我们经常需要进行各种数据类型之间的转换操作,下面将为您介绍如何将字符串转换为数字。首先我们需要了解各种数据类型的表示,String在java中为字符串类型,int在java中为整数类型,大小在-2147483648到2147483647 之间,long为长整形,可以表示的数值大小比int大很多,double和float表示浮点型数据,仅小数点后的精度不同。下图为字符串到各种数据类型的简单转换。

    087368b96a7618468802bc1207a89a87.png

    工具/材料

    Eclipse开发工具

    操作方法

    01

    首先我们以int类型(整数类型)为例,介绍String字符串转换为整数的方法。下面要介绍int类型的包装类Integer,同样long的包装类为Long, float的包装类为Float,double的包装类为Double,包装类在数据类型转换中起到重要的作用。基本数据类型和包装类之间可以自动拆装箱,因此在互相转换的时候不需要强制类型转换。我们将字符串String转换为数值int时,需要用到Integer.parseInt()方法,如下图所示,字符串左边的0无论有多少个都会去掉。

    ef9b9e29f999433aaaba4e3257fba9c9.png

    02

    将字符串String转化为Integer类型,使用Integer.valueOf()方法,该方法既可用Integer类型来接收,也可用int类型来接收。因为Integer.valueOf()方法的返回值虽然是Integer类型,但是可以自动拆箱为int类型。

    438ca58436186af9b9fefb678e9d6f3b.png

    03

    下面介绍将整数int转化为Integer包装类,我们通过new一个Integer类的对象,并将int类型的数值传入即可,如下图所示。

    86dc7f9bea2a8bd0545574b0e77b360d.png

    04

    将Integer转化为int,我们使用方法Integer.intValue(),方法的返回值为int类型。

    09215fda677b963171ae4ffb477c37a8.png

    05

    以上步骤以int整数类型为例,介绍了字符串到整数的数值转换。String字符串类型转换为基本数据类型的数值型如Double, Float, Long 等方法都大同小异,而基本类型和包装类之间的互转也类似。下面不再单独介绍其他几种数值类型,转换方法如下图所示。

    821acae902ab01c30293b42c41d45640.png

    06

    int,long均为基本数据类型,那么如果String字符串表示的数值超过了这些基本数据类型的范围该怎么表示呢?此时我们需要BigDecimal类来接收,如果用int或long接收会出现 java.lang.NumberFormatException异常,如下图所示。

    0227a8a34bfb5561908606d2590edaef.png

    516b4490266b3a0427d9832f951d9825.png

    07

    以上步骤中数据类型转换已经完成了,但是还有一个容易被忽视的问题,那就是必须要保证str字符串都是数字才行,如果不是数字,则会报NumberFormatException异常,因此我们在类型转换之前还需要对字符串进行校验,确认字符串是否为数字。字符串的校验我们最先想到的便是正则表达式,如下图所示。

    7dd1c430ebf6eb1d9b2e69ab2a13bca4.png

    08

    此外我们还可以使用Java自带的函数来进行校验,循环遍历字符串的每一个字符,判断每一个字符是否为数字,如下图所示。

    817e3c6732e1f3611efd953a14792508.png

    好了,以上就是大致内容了,(END)

    注意字符串是否为数值以及字符串表示数值的大小,否则易出现java.lang.NumberFormatException类型转换异常。

    声明:该文观点仅代表作者本人,天晴资讯网系信息发布平台,仅提供信息存储空间服务。

    展开全文
  • 幸运的是,有一些包装器类提供这些String值转换为数字的方法,而String类具有一种其再次转换回的方法。 包装类 ( Wrapper Classes ) The primitive data types that deal with numbers (i.e, byte, int, double...

    Typically in a graphical user interface, there will be text fields that are expecting the user to enter in a numerical value. This number value will end up in a String object which doesn't really help your program if you want to do some arithmetic. Fortunately, there are wrapper classes that provide methods for converting those String values into numbers and the String class has a method to convert them back again.

    通常,在图形用户界面中 ,会有一些文本字段,希望用户输入数字值。 如果您想进行一些算术运算,则此数字值最终将出现在String对象中,该对象实际上对程序没有帮助。 幸运的是,有一些包装器类提供将这些String值转换为数字的方法,而String类具有一种将其再次转换回的方法。

    包装类 ( Wrapper Classes )

    The primitive data types that deal with numbers (i.e, byte, int, double, float, long, and short) all have class equivalents. These classes are known as wrapper classes as they take a primitive data type, and surround it with the functionality of a class. For example, the Double class will have a double value as its data and provide methods for manipulating that value.

    处理数字(即字节,整数,双精度数,浮点数,长整数和短整数)的原始数据类型都具有类等效项。 这些类被称为包装器类,因为它们采用原始数据类型,并以类的功能将其包围。 例如,Double类将有一个double值作为其数据,并提供用于操纵该值的方法。

    All of these wrapper classes have a method called valueOf. This method takes a String as an argument and returns an instance of the wrapper class. For example, let's say we have a String with the value of ten:

    所有这些包装器类都有一个称为valueOf的方法。 此方法将String作为参数,并返回包装类的实例。 例如,假设我们有一个值为十的字符串:

    
    String number 
    
    

    Having this number as a String is no use to us so we use the Integer class to convert it into an Integer object:

    使用此数字作为String对我们没有用,因此我们使用Integer类将其转换为Integer对象:

    
    Integer convertedNumber = Integer
    
    

    Now the number can be used as a number and not a String:

    现在,该数字可用作数字而不是字符串:

    
    convertedNumber = converte
    
    

    You can also make the conversion go straight to a primitive data type:

    您还可以将转换直接转换为原始数据类型:

    
    int convertedNumber = Integer.valueOf(nu
    
    

    For other primitive data types, you just slot in the correct wrapper class—Byte, Integer, Double, Float, Long Short.

    对于其他原始数据类型,您只需要插入正确的包装类即可—字节,整数,双精度,浮点型,长短型。

    Note: You must make sure the String can be parsed into the appropriate data type. If it can't you will end up with a runtime error. For example, trying to covert "ten" into an integer:

    注意:您必须确保可以将String解析为适当的数据类型。 如果不能,则将导致运行时错误。 例如,尝试将“十”转换为整数:

    
    String number = "ten";
    int convertedNumber = Integer.valueOf(nu

    will produce a NumberFormatException because the compiler has no idea "ten" is supposed to be 10.

    将产生NumberFormatException,因为编译器不知道“十”应该为10。

    More subtly the same error will occur if you forget that an 'int' can only hold whole numbers:

    如果您忘记“ int”只能容纳整数,则将更细微地发生相同的错误:

    
    String number = "10.5";
    int convertedNumber = Integer.valueOf(nu

    The compiler won't truncate the number it will just think that it doesn't fit into an 'int' and that it's time to throw a NumberFormatException.

    编译器不会截断该数字,只会认为它不适合'int'并且应该抛出NumberFormatException。

    将数字转换为字符串 ( Converting Numbers to Strings )

    To make a number into a String follows the same sort of pattern as the String class has a valueOf method too. It can take any of the primitive data type numbers as an argument and produce a String:

    将数字转换为String的方式与String类也具有valueOf方法的方式相同。 它可以将任何原始数据类型数字作为参数并产生一个String:

    int numberTwenty = 20;

    int numberTwenty = 20;

    String converted = String.valueOf(numberTwenty);

    已转换的字符串= String.valueOf(numberTwenty);

    which puts "20" as the String value of co nverted.

    将“ 20”作为转换后的字符串值。

    or you can use the toString method of any of the wrapper classes:

    或者,您可以使用任何包装类的toString方法:

    
    String converted = Integer.toStri
    
    

    The toString method is common to all object types—most of the time it is just a description of the object. For wrapper classes, this description is the actual value they contain. In this direction, the conversion is a bit more robust. If the Double class was to be used instead of the Integer:

    toString方法对所有对象类型都是通用的-大多数情况下,它只是对象的描述。 对于包装器类,此描述是它们所包含的实际值。 在这个方向上,转换会更可靠。 如果要使用Double类而不是Integer:

    
    String converted = Double.toStri
    
    

    the result would not cause a runtime error. The converted variable would contain the String "20.0".

    结果不会导致运行时错误 。 转换后的变量将包含字符串“ 20.0”。

    There is also a more subtle way to convert numbers when you are concatenating Strings. If a String was to be built like:

    连接String时,还有一种更巧妙的方法来转换数字。 如果要像这样构建字符串:

    
    String aboutDog = "My dog is " + numberTwenty + "
    
    

    the conversion of the int numberTwenty is automatically done.

    int number20的转换是自动完成的。

    翻译自: https://www.thoughtco.com/converting-strings-to-numbers-and-vice-versa-2034313

    展开全文
  • 各种数字类型转换字符串型: String s = String.valueOf( value); // 其中 value 任意一种数字类型。 字符串转换成各种数字类型: String s = "169"; byte b = Byte.parseByte( s ); short t = Short....
  • Java中,如何将字符串转为数字(StringToNumber)

    万次阅读 多人点赞 2018-10-01 21:17:16
    如何一个字符串转换为一个数字? 前提是这个字符串数字的类型,如“123”;show you the code: package com.isea.java; public class Test { public static void main(String[] args) { String......
  • 主要大家详细介绍了java实现字符串数字转换工具,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • java怎样做到字符串数字

    千次阅读 2021-02-12 09:38:30
    java字符串数字的方法:1、转化整型数字【Integer.parseInt(String s) 】;2、转化浮点型数字【Float.parseFloat(String s)】。相关免费学习推荐:java基础教程java字符串数字的方法:1、转化整型数字(1)...
  • JAVA字符串如何转换数字(详解)

    万次阅读 多人点赞 2018-08-16 20:18:52
    2. 如果是单个字符或者字符串则需要先切开转换为char字符再转换 不然像上面直接转化会空指针异常 String a = "ABC"; //String对象中的每一个下标位的对象保存在数组中 char...
  • java如何将字符串转为日期

    千次阅读 2021-03-14 16:24:18
    一、概述将Java字符串“ 2010年1月2日”格式的转换为日期的最佳方法是什么?最终,我想月份,日期和年份分解为整数,以便可以使用Date date = new Date();date.setMonth()..date.setYear()..date.setDay()..date...
  • 在那里你根据需要你的浮动格式化为字符串,但是然后该字符串再次转换为浮点数,然后你在stdout中打印的是你的浮点数得到了标准格式.看看这段代码import java.text.DecimalFormat;String stringLitersOfPetrol ...
  • 下面小编就大家带来一篇Java中Boolean与字符串或者数字1和0的转换实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • 下面小编就大家带来一篇Java去掉数字字符串开头的0三种方法(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • 您可以使用Integer.parseInt()或Integer.valueOf()函数String转换为int值。 如果String不是可转换的,那么发生NumberFormatException。方法1.使用Integer.parseInt()Integer.parseInt()转换字符串值并返回一个...
  • java将字符串转成数字

    2020-09-29 13:02:47
    ##一、 将字符串转成数字 转化过程注意2点: 1.去掉空格。 2.判断字符串是否是数字构成...判断字符串是否为数字 Pattern p = Pattern.compile("-{0,1}\\d{1,}"); Matcher m = p.matcher(intStr); System.out.pri
  • 后端以逗号分割的数字字符串转为数字列表 ArrayList<Long> idList = new ArrayList<>(); String[] entityIds = entity.split(","); for (String entityId : entityIds) { idList.add(Long.valueOf...
  • 假设以下是我们的字符串集-SetsetStr=newHashSet<>(Arrays.asList("50","100","150","200","250",...现在,转换为整数集-SetsetInteger=setStr.stream().map(s->Integer.parseInt(s)).collect(Colle...
  • 主要介绍了Java实现对字符串中的数值进行排序操作,涉及java字符串与数组的相互转换以及数组排序相关操作技巧,需要的朋友可以参考下
  • 主要介绍了Java用正则对字符串进行处理并判断是否能转为数字的实例代码,代码很简单,需要的朋友可以参考下
  • I'm quite new to Java so I am wondering how do you convert a letter in a string to a number e.g. hello world would output as 8 5 12 12 15 23 15 18 12 4.so a=1, b=2, z=26 etc.解决方案Since this is most...
  • 程序从命令行接入数字,求和,如果接入的是字符串的解决办法设计思想:...结束程序,如果有,则用for循环依次将字符串转换为double型,用sum求和后输出程序流程图为:程序源代码为:package demo;import java.uti...
  • 标签:java运算中,常涉及String 型的字符串转为int 型数字的情况。哪些字符串可以转为数字,哪些不可以呢,不能总以Integer.parseInt() 是否抛出异常来判断。刚好碰到了转换情况,就总结了下,分享出来。定义方法...
  • 3、字符串数字 Integer.valueOf(str); //返回Integer对象 Integer.Paselnt(str); //返回Int对象 4、数字字符串 String.valueOf(int); 5、字符串 转 字符数组 str.toCharArray(); 【字符与字符不能直接比较:...
  • Java 将字符串转化为数字

    千次阅读 2021-01-08 20:16:49
    public class Demo { public static void main(String[] args) { String str="123456"; int num = Integer.parseInt(str); } }
  • java字符串儿数组转为数字数组

    千次阅读 2021-11-23 14:49:59
    //把字符创数组转为数字数组 String[] Id = checkedId.split(","); int [] num=new int[Id.length]; for(int i=0;i<num.length;i++){ num[i]=Integer.parseInt(Id[i]); } int LimitType= this....
  • public class StringToNumber { public static void main(String[] args) { String str = "123"; Integer num1 = new Integer(str); int num2 = Integer.parseInt(str); ... Integer num3 = Integer.valueOf(str)...
  • 下面小编就大家带来一篇Java将科学计数法数据转为字符串的实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • java代码-使用java输入一个字符串将字符串中的所有大写字母转换为小写字母,所有小写字母转换为大写字的源代码 ——学习参考资料:仅用于个人学习使用!

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 253,972
精华内容 101,588
关键字:

java将字符串转为数字

java 订阅