我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:神州彩票 > 二进制字符 >

二进制字符串转换回中文

归档日期:07-25       文本归类:二进制字符      文章编辑:爱尚语录

  以上是中文转换二进制字符串,res为结果,现在想反向处理,假定就拿输出的res做参数,请高人写个方法,返回上面的中文。弄了2个小时没弄出来。。惭愧。。

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  1 我因为工程的原因,产品需要,只能用jdk1.4,所以泛型list用不了。。能不能优化下;

  List.remove(int index)是将指定位置的元素删除,然后右边所有剩下的数据向左移一位,填补第一个数据的空缺。remove(0)中0表示第一个元素,不停的调用remove(0)导致所有元素被删光,剩下一个空集合。除了删除指定元素外,同时也具有返回值,就是被删掉的元素。追问我开始就试过了

  (Byte)就更不对了,需要byte,不是g.Byte....追答是么?为么我机子可以正常运行,难道1.5后才有remove(int)方法么,我手上没有1.4的api文档,提问者可以查一查文档确定一下。其实,上面提供的代码太不面向对象了,纯粹因为好玩才回答一下,如果让我来设计的话,会用一个class将所有的数据包装起来,声明一个field用以保存我们,是冠军.getBytes(gbk);,这样的话,用new String(instance.getField(), GBK);就能拿到想要的数据了。追问我要的也就是个方法,参数就是字符串,不用关心能不能转成功,这个是后线步都没实现。。。能转成二进制,转不回去了。。追答出现什么错误?是〈变量名字冲突〉,〈非法强制类型转换〉,还是〈使用了未定义的方法〉?你用的什么编译器?你所指的字符串参数是自己定义的,还是由用户输入的?如果是由自己输入的,只是用来做内部处理的,可以用一个空格来隔开每一个数据,这样就不用定义什么正则表达式了。一个代码最重要的是,想达到一个什么样的目的,你没讲清你的目的,自然得不到你想要的最佳答案了。。追问代码就是拷贝你的,我自己封装了个方法,参数就是标题里的res,能不能反出来还不知道,不过在remove那就报错了。1.4不支持泛型,就用了强转,但还是不行, b[j] = (byte)list.remove(0); 报错追答不是原生数据类型byte, 正确是Byte啊,看清楚,一个b小写,一个大写追问这就更不对了啊,还是报错。

  byte数组需要的就是byte型,不能是java.lang.Byte型追答哦,知道了,1.4没有自动装箱功能

  第一个参数:你的byte[]数组,这里应该是你的b了。utf-8是字符编码集,看你使用的是什么字符编码就使用哪个。更多追问追答追问完全不是的,我跟过代码。2个数组的内容完全不一样。字符串110011.....之类的,需要8位一转,才能显示出中文。这句话出来还是乱码追答乱码是因为你的字符编码集错了。

  算了。。你不懂就别乱说了,根本不是一回事,即便看到的0011字符串塞进数组,不转换还是和需要的二进制数组有区别。我DEBUG跟踪过了,值完全不一样这个等于没转,我的需求是二进制字符串,你把b数组循环打出来的字符串再转转看,不是乱码就有鬼了。我的需求可以简化成:b数组循环拼接成字符串后,怎么把这个字符串再弄成原先的b数组。单纯的new个数组出来然后循环字符串挨个塞,结果和原先的不一样。equals返回false,跟踪的数组里的值也完全不一样

  我身边没有环境 给你思路 首先把你得到的二进制吗 分组放在byte[]里 八位一组

  那么这一位加上它后面的一位用(然后循环要跳过它后面的数 这个不要忘了哦):

  意思是将一串字符转化成用0和1表示的二进制数例如 将客户输入的十进制数2用Convert.ToString(long value,int toBase)方法即可. toBase为2,8,10

本文链接:http://runhappyplace.com/erjinzhizifu/354.html