int128-255 转ASCII码表对应的字符 怎么弄 急!!高分 求高手……

barrons 2014-11-07 12:53:16
如题,怎么将int类型的数字128到255 转换成 ASCII表对应的字符??????????????????????
如123对应的ASCII码表字符是 {
就是要去到这个 {


求高手 求大神……
大家帮我@几个大神过来解决下问题吧……
...全文
803 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
楼主解决了没有,我正在被他困惑 如果解决了麻烦指导一下 QQ 41389363
我是个伪iter 2014-11-08
  • 打赏
  • 举报
回复
引用 4 楼 barrons 的回复:
[quote=引用 1 楼 zyb134506 的回复:] ascII编码有效值在0-127范围内。超出范围的就不是ASCII编码了。 至于int转ASCII你可以把int强制转换成byte。也就是int数组强制转换成byte数组,然后使用byte数组构造String字符串即可。
现在这个项目的要求是 把一个字符串的长度 转换成 像 123的ASCII码表对应字符 “{” 这样的东西[/quote]楼主还是说清需求 你这说的完全看不懂 字符串 是一串数字 ?还是其他字符?
wyc_ 2014-11-08
  • 打赏
  • 举报
回复
编号在128~255的是扩展的编码,原本就不是作为显示用的,出现这个问题的原因是控制台使用了中文代码页,要显示扩展ASCII码,则将执行这个程序的控制台的的代码页改为 437 (OEM-美国) 即可!楼主可以试试。至于转换可以直接(char)i;直接强制类型转换即可,char采用两个字节的Unicode,它包括了ASCII(0-127),ISO-Latin-1(0-255),试试看。
nmyangym 2014-11-07
  • 打赏
  • 举报
回复
供楼主参考:

import java.io.UnsupportedEncodingException;
import java.util.Scanner;

public class IntToChar {
	public static final int MINIMUM = 32;// 最小的可显字符
	public static final int MAXIMUM = 256;// 最小的可显字符

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);

		int x = MINIMUM;//赋初值
		System.out.println("请输入32--255之间的数,\"exit\"退出!");

		String input = scan.nextLine();
		while (true) {
			try {
				x = Integer.parseInt(input);
			} catch (NumberFormatException nee) {
				//nee.printStackTrace();
				System.out.println("输入数据 \"" + x + "\"非法,请从新输入!");
				continue;
			}
			if (x <= MINIMUM || x >= MAXIMUM) {
				System.out.println("输入数据 \"" + x + "\"超出范围!");
			} else {
				System.out.println("" + x + " --> " + changeIntToString(x));
			}
			System.out.println("请输入32--255之间的数,\"exit\"退出!");			
			input = scan.nextLine();
			if(input.equals("exit")) {
				break;
			}
		}
	}

	/**
	 * 把Int 型数,转换成字符。
	 * 
	 * @param x
	 * @return x 所对应的字符。
	 */
	public static String changeIntToString(int x) {
		byte[] b = new byte[1];
		String result = "";
		b[0] = (byte) x;
		try {
			result = new String(b, "ISO-8859-1");
		} catch (UnsupportedEncodingException uee) {
			uee.printStackTrace();
		}
		return result;
	}
}
barrons 2014-11-07
  • 打赏
  • 举报
回复
引用 1 楼 zyb134506 的回复:
ascII编码有效值在0-127范围内。超出范围的就不是ASCII编码了。 至于int转ASCII你可以把int强制转换成byte。也就是int数组强制转换成byte数组,然后使用byte数组构造String字符串即可。
现在这个项目的要求是 把一个字符串的长度 转换成 像 123的ASCII码表对应字符 “{” 这样的东西
barrons 2014-11-07
  • 打赏
  • 举报
回复
引用 1 楼 zyb134506 的回复:
ascII编码有效值在0-127范围内。超出范围的就不是ASCII编码了。 至于int转ASCII你可以把int强制转换成byte。也就是int数组强制转换成byte数组,然后使用byte数组构造String字符串即可。
超出范围的不是ASCII,那是什么??? 不是有个什么扩展ASCII表吗?
快乐的2 2014-11-07
  • 打赏
  • 举报
回复

int[] arr = {1,65,78};
byte[] bits = new byte[arr.length];
for(int i = 0; i < bits.length; i++){
  bits[i] = (byte)arr[i];
}
String str = new String(bits);
System.out.println(str);
快乐的2 2014-11-07
  • 打赏
  • 举报
回复
ascII编码有效值在0-127范围内。超出范围的就不是ASCII编码了。 至于int转ASCII你可以把int强制转换成byte。也就是int数组强制转换成byte数组,然后使用byte数组构造String字符串即可。

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧