首页 > 解决方案 > 如何将字符串(字节数组作为字符串)转换为短字符串

问题描述

您好,我想将字节数组,即 0x3eb 转换为短格式,所以我将 0x3eb 视为字符串并尝试转换为短格式,但它会抛出 Numberformat 异常......请帮助我

import java.io.UnsupportedEncodingException;
public class mmmain
{

    public static void main(String[] args) throws UnsupportedEncodingException 
    {
        String ss="0x03eb";
        Short value = Short.parseShort(ss);
        System.out.println("value--->"+value);
    }
}


Exception what im getting is 
Exception in thread "main" java.lang.NumberFormatException: 
For input string: "0x3eb" at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
    at java.lang.Integer.parseInt(Integer.java:491)
    at java.lang.Short.parseShort(Short.java:117)
    at java.lang.Short.parseShort(Short.java:143)
    at mmmain.main(mmmain.java:14)

即使我尝试将 0x3eb 转换为字节

字节[] 字节 = ss.getBytes();

但我没有找到任何将字节解析为短的实现。

提前致谢

标签: javaarrayscastingshorttypecasting-operator

解决方案


请参阅以下文档parseShort

将字符串参数解析为有符号十进制短。字符串中的字符必须都是十进制数字,除了第一个字符可以是ASCII减号'-'('\u002D')表示负值或ASCII加号'+'('\u002B')表示正值。

要解析的字符串只能包含十进制字符和符号字符,不能包含0x前缀。

尝试:

String ss="3eb";
Short value = Short.parseShort(ss, 16);

推荐阅读