gpt4 book ai didi

Java:如何获取字符串的双向数字表示?

转载 作者:行者123 更新时间:2023-12-01 15:48:08 24 4
gpt4 key购买 nike

我需要计算双向字符串的数字表示。例如,如果我有一个字符串“US”,我想要一个算法,当应用于“US”时生成一个数字 X(int 或 long)。当另一种算法应用于X时,我想得到“US”。每个字符串由两个字符组成。

提前致谢。

最佳答案

下面通过使用 DataInputStream 和 DataOutputStream 读取/写入底层字节数组来轻松完成此操作。

public static void main(String[] args) {

String original = "US";
int i = stringToInt(original);
String copy = intToString(i);

System.out.println("original: "+original);
System.out.println("i: "+i);
System.out.println("copy: "+copy);

}

static int stringToInt(String s) {

byte[] bytes = s.getBytes();

if (bytes.length > 4) {
throw new IllegalArgumentException("String too large to be" +
" stored in an int");
}

byte[] fourBytes = new byte[4];
System.arraycopy(bytes, 0, fourBytes, 0, bytes.length);

try {
return new DataInputStream(new ByteArrayInputStream(fourBytes))
.readInt();
} catch (IOException e) {
throw new RuntimeException("impossible");
}
}

static String intToString(int i) {

ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
try {
new DataOutputStream(byteArrayOutputStream).writeInt(i);
} catch (IOException e) {
throw new RuntimeException("impossible");
}

return new String(byteArrayOutputStream.toByteArray());
}

关于Java:如何获取字符串的双向数字表示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6710649/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com