【发布时间】:2015-09-04 06:22:08
【问题描述】:
我不熟悉Java语法,这个问题很愚蠢。
我在 C 语言中的目标很简单:
char a[3] = {1, 12, 115};
for{int i = 0; i< 3; i++}
printf("%1d", (unsigned int)a[i]);
或
char str[256];
memset(&str[0], 0, 256);
for(int i = 0; i<3; i++){
int ii;
ii = strlen(&str[0]);
sprintf(&str[ii], "%1u", (unsigned int)a[i]);
}/*for*/
printf("%s", &str[0]);
打印结果为112115
如果我想使用十六进制
只是替换
sprintf(&str[0], "%1u", (unsigned int)a[i]);
作为
sprintf(&str[0], "%#1x", (unsigned int)a[i]);
在java中,出于同样的目的,我遇到了麻烦。
有一个 byte[] ,我想将其转换为数字数组,但我没有明确的方法来实现目标。
我找到了一种方法:
String str = new String("");
byte[] a = {1, 12, 115};
for(int i = 0; i< 3; i++){
str += Integer.toString(a[i].intValue());
}
这看起来很笨拙。
谁能给我建议?谢谢。
【问题讨论】:
-
请问,“a[] Array contains char's”是什么意思?我在 JAVA 中很弱...
-
在这种情况下,将
StringBuffer用于str以避免创建过多的字符串。intValue()在这里没有用,因为字节已经是数字(它们是 8 位整数)。所以str+=Byte.toString(a[i]);运作良好。所有这一切并不比使用sprintf及其奇怪的格式语法更奇怪......