JAVA中计算ASCII 为160 32 的空格

String aaa = "北京       上海";
String bbb = "上海             杭州";
char a = ' ';//aaa中的一个空格
char b = ' ';//bbb中的一个空格
System.out.println((int)a);
System.out.println((int)b);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用以下Java代码计算MEID校验位: ```java public static byte calculateMeidChecksum(byte[] meid) { byte sum = 0; for (int i = 0; i < meid.length; i++) { sum += meid[i]; } return (byte) (-(sum + (byte) 0x80) & (byte) 0xFF); } ``` 其,`meid`是一个byte数组,它包含MEID号的14个字节。这个方法返回的是一个byte类型的校验位。 ### 回答2: MEID(Mobile Equipment Identifier)是CDMA手机的唯一标识符,由14个十六进制数字组成,其前13个数字是设备的身份码,最后一个数字是校验位。校验位的计算方法是对前13个数字进行一定的算法运算得到的。 以下是用Java编写计算MEID校验位的方法: ```java public class MEIDValidation { public static String calculateMEIDChecksum(String meid) { // 去除MEID空格和冒号 meid = meid.replace(" ", "").replace(":", ""); // 将MEID转为大写字母 meid = meid.toUpperCase(); // 判断MEID是否合法 if (meid.length() != 14) { return "MEID长度必须为14位"; } // 计算校验位 int sum = 0; for (int i = 0; i < 13; i++) { int num = Character.digit(meid.charAt(i), 16); if (i % 2 == 0) { num *= 2; num = num < 10 ? num : num / 10 + num % 10; } sum += num; } int checksum = (10 - (sum % 10)) % 10; // 返回计算得到的校验位 return Integer.toHexString(checksum).toUpperCase(); } public static void main(String[] args) { String meid = "A000000000001"; String checksum = calculateMEIDChecksum(meid); System.out.println("MEID校验位:" + checksum); } } ``` 以上代码定义了一个名为`MEIDValidation`的类,其包括一个名为`calculateMEIDChecksum`的静态方法用于计算MEID的校验位。方法首先移除MEID空格和冒号,并将其转换为大写字母。然后,对前13个数字进行一系列算法运算,最后得到校验位。最后,通过`main`方法调用`calculateMEIDChecksum`方法计算给定MEID的校验位,并将其输出到控制台。 **注意:** 这只是一个示例方法,用于演示如何计算MEID校验位,实际应用还需要进行更多的错误处理和校验。 ### 回答3: 要用Java写一个计算MEID校验位的方法,可以按照以下步骤进行: 1. 定义一个方法,例如`calculateMEIDCheckDigit`,它接受一个字符串参数MEID,返回一个整数类型的校验位。 2. 在方法,首先将传入的MEID字符串转换为字符数组。 3. 创建一个变量`checksum`,初始值为0,用于保存校验位计算结果。 4. 使用循环遍历MEID的每个字符,逐个进行计算。 5. 在循环,根据字符的ASCII码值进行相应的操作:如果是数字字符,则将其ASCII码值减去字符'0'的ASCII码值;如果是字母字符,则将其转换为大写字母,然后将其ASCII码值减去字符'A'的ASCII码值再加上10。 6. 将当前字符的计算结果累加到`checksum`变量。 7. 循环结束后,将`checksum`的值除以16并取余数,得到校验位的十六进制表示。 8. 最后将校验位的十六进制表示转换为整数类型,并返回该值。 以下是一个示例的Java代码: ```java public class MEIDChecksumCalculator { public static int calculateMEIDCheckDigit(String meid) { char[] meidCharacters = meid.toCharArray(); int checksum = 0; for (char c : meidCharacters) { if (Character.isDigit(c)) { checksum += c - '0'; } else if (Character.isLetter(c)) { c = Character.toUpperCase(c); checksum += c - 'A' + 10; } } return Integer.parseInt(Integer.toHexString(checksum % 16), 16); } public static void main(String[] args) { String meid = "A1000012345678"; int checkDigit = calculateMEIDCheckDigit(meid); System.out.println("MEID校验位为:" + checkDigit); } } ``` 这个代码可以计算MEID字符串的校验位,并输出结果。在示例,MEID字符串为"A1000012345678",计算得到的校验位为10。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值