java 中字符串和整型数组间的转换

String="abcdefgh"如何转换成一个64位的一维整数数组。在这个数组中前八位对应a的二进制数。接下来的八位对应b的二进制数。以此类推。
还有就是反过来转换,一个64位的一维整数数组。每八位表示一个字符,如何将其转换成字符串。谢

public class StringHex {

//将 ENCODE_BITS = 8 则不支持 汉字的编码, 16支持任意字符的编码
private static final int ENCODE_BITS = 16;

public StringHex() {
}

public static void main(String[] args) {
//为了支持全部的unicode字符 应该用16位来存放字符的二进制代码
String test = "@dasd&^%$#$%#@#$@#$你哈啊卡仕达是的";
System.out.println("Input String: " + test);
int [] is = StringHex.stringToInts(test);
System.out.print("Encode arrays: ");
for(int j: is) {
System.out.print(j);
}
System.out.println("\nDecode String: " + StringHex.intsToString(is));
}

public static String intsToString(int [] ints) {
int [] ts = new int [StringHex.ENCODE_BITS];
StringBuffer sb = new StringBuffer();
for(int i = 0; i < ints.length / StringHex.ENCODE_BITS ; i ++) {
int j = i * StringHex.ENCODE_BITS;
for(int k = j; k < j + StringHex.ENCODE_BITS; k ++) {
ts[k - j] = ints[k];
}
sb.append(StringHex.intsToChar(ts));
}
return sb.toString();
}

public static int[] stringToInts(String dist) {
int len = dist.length();
int [] ints = new int[StringHex.ENCODE_BITS * len];
for(int i = 0; i < len; i ++) {
char [] cs = StringHex.charToInts(dist.charAt(i)).toCharArray();
int j = i * StringHex.ENCODE_BITS;
for(int k = j; k < j + StringHex.ENCODE_BITS; k ++) {
ints[k] = Integer.parseInt(cs[k - j] + "");
}
}
return ints;
}

public static String charToInts(char c) {
String bin = Integer.toBinaryString(c);
int len = StringHex.ENCODE_BITS - bin.length();
for (int i = 1; i <= len; i++) {
bin = "0" + bin;
}
return bin;
}

public static char intsToChar(int[] ints) {
int codePoint = 0;
for (int i = ints.length; i >= 1; i--) {
codePoint += Math.pow(2, i - 1) * ints[ints.length - i];
}
return Character.toChars(codePoint)[0];
}
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2016-01-02
通过数组循环的方式,最终拼接成字符串
1、定义一个整型数组
int[] arr = new int[3];//定义一个长度3的整型数组

2、拼接成字符串

String s = "";
for(int i=0;i<arr.length;i++){
s = s + arr[i];//拼接成字符串,最终放在变量s中
}
第2个回答  2009-10-18
楼上的比我想的全面多了,本来不该献丑,但是写了半天也怪不容易的,全当赚2分辛苦费吧。
你说的有点不明白,我的理解是,你要把像“abcdefg”这样的字符串转换为
一个字符串数组,这个数组是他的二进制表示
01100001
01100010
01100011
01100100
01100101
01100110
01100111 程序如下:
......................................
public class StrAndInt{

public StrAndInt() {

}
public static void main (String[] args) {
String[] s = StrAndInt.strToInt("abcdefg");
for(int i=0;i<s.length;i++){
System.out.println(s[i]);
}
System.out.println(StrAndInt.intToStr(s));
}
public static String[] strToInt(String s){
char ch;
String[] sr = new String[s.length()];
for(int i=0;i<sr.length;i++){
ch = s.charAt(i);
sr[i] = Integer.toBinaryString(ch);
int len = 8 - sr[i].length();
for (int j = 0; j <len; j++) {
sr[i] = "0"+sr[i];
}
}
return sr;
}
public static String intToStr(String[] s){
StringBuffer sbr = new StringBuffer("");
char ch;
for(int i=0;i<s.length;i++){
// if(s[i].length()>8)return "error";
try{
ch = (char)Integer.parseInt(s[i],2);
}catch(Exception e){
return "error";
}
sbr.append(ch);
}
return sbr.toString();
}

}
第3个回答  2009-10-18
我做出来了
但是看到1楼的 我惭愧了
1楼的一看就知道 使用java 熟练度很高啊
整个代码明了清晰啊

java 中字符串和整型数组间的转换
int [] ints = new int[StringHex.ENCODE_BITS * len];for(int i = 0; i < len; i ++) { char [] cs = StringHex.charToInts(dist.charAt(i)).toCharArray();int j = i * StringHex.ENCODE_BITS;for(int k = j; k < j + StringHex.ENCODE_BITS; k ++) { ints[k] ...

Java整型变量、字符、字符串类型之间的简单转换全总结
转换字符串为整型,多见于ACM算法题中,通过nextLine()或next()接收的输入需转换。通常采用Integer.parseInt方法实现。将字符串转换为字符,字符串提供toCharArray方法,可直接转化为字符数组。若要获取字符串指定位置的字符,使用charAt方法。注意,charAt方法不能用于修改字符串内的字符,而应先将字符串转换为...

Java干货 | Java数组和字符串的相互转换
数组数组是存储相同类型元素的数据结构,其特点是:类型一致,长度固定,通过下标访问。例如,存储整数的数组可以这样创建和操作:int[] arr = {1, 2, 3}; arr[0] = 4;转换方面,数组可以转化为字符串,如使用`String.valueOf(arr)`。字符串字符串由字符序列构成,不可变,通过下标访问。例如,拼...

Java干货 | Java数组和字符串的相互转换
- 通过下标访问与修改:如 int[] arr = {1, 2, 3, 4, 5};,我们可以轻松地访问和修改每个元素。2. 实践应用数组适用于存储一组数值,如整数或浮点数。看这个例子:for (int i = 0; i arr.length; i++) {System.out.println(arr[i]);}而数组与字符串的转换则通过String类的构造函...

java怎么将int优雅(高效)地转成String
在Java中将整数优雅高效地转换为字符串,可以通过以下步骤实现。首先,了解关键知识点,如计算数字位数的方法。一个巧妙的技巧是利用数组而非除法计算位数。具体方法是定义9、99、999...这样的数组,通过比较来计算数字的位数,这种方法在性能上比直接使用除法要好。另一个关键点是根据不同情况采用快速和...

用java怎么把字符串转成int类型呢?
1、首先创建一个String类型的数字数组,如下图所示。2、然后在这个数据中,使用Integer[] intArray = Convert.toIntArray(b);进行转换,如下图所示。3、运行程序展示结果,如下图所示。4、假如类型不是数字,会报错No Converter for type,如下图所示就完成了。

java中把String类型数组转换成int型数组怎么做?
1、自己写一个for来全部转换就好了 2、长度跟之前的字符串的那个数组长度一样就OK 3、见图 4、见代码 \/ 公司 深圳市海枫科技有限公司 创建时间 2018年6月22日 邮件 charles@hoifun.com \/ package com.itdugu.unit01.test1;import java.math.BigDecimal;public class Test2 { public static void ...

java里,如何把String字符串转换成int[]数组?
{ \/\/先由字符串转换成char,再转换成String,然后Integer a[i] = Integer.parseInt( String.valueOf(s.charAt(i)));} \/\/字符串中的数据一定要是数字,否则会出现异常 s.charAt(i);得到字符串i位置的值,String.valueOf(); 转换char类型为字符串 Integer.parseInt();由String转换成Integer ...

java字符串转数组
1. 使用toCharArray方法:String类的toCharArray方法可以将字符串转换为字符数组。这是最简单直接的方式,它会将字符串中的每个字符转换为数组的一个元素。例如:java String str = "Hello";char[] charArray = str.toCharArray; \/\/ str现在是一个字符数组,包含"H", "e", "l", "l", "o"2. ...

java中怎么将由数字组成的字符串转化为数组?
主要是通过包装类提供字符串与整型的转换方法来实现的;我写了个例子你可以试一下:String str = "12,34,65,85,45,11"; \/\/定义一个由整型构成的字符串 String[] strArr = str.split(","); \/\/然后使用split方法将字符串拆解到字符串数组中 Integer[] intArr = new Integer[strArr.len...

相似回答