public class Test
{
public static void main(String[] args)
{
String st2 = "1828356512";
char[] ch2 = st2.toCharArray();
int[] b = new int[ch2.length];
for(int i = 0; i < ch2.length; i++)
{
b[i] = ch2[i];
}
for(int i = 0; i < b.length; i++)
{
System.out.print(b[i] + " ");
}
}
}
输出:49 56 50 56 51 53 54 53 49 50 (真的没有想到会是这样的结果!!!)
{
public static void main(String[] args)
{
String st2 = "1828356512";
char[] ch2 = st2.toCharArray();
int[] b = new int[ch2.length];
for(int i = 0; i < ch2.length; i++)
{
b[i] = ch2[i];
}
for(int i = 0; i < b.length; i++)
{
System.out.print(b[i] + " ");
}
}
}
输出:49 56 50 56 51 53 54 53 49 50 (真的没有想到会是这样的结果!!!)
这个字符串拆分成字符后每个字符对应的ascii码的值就是这样的。
楼主可以搜一下ascii码表对照一下。
int并不存取字符串,便将字符串对应ascii
你给每个结果 减去 '0'就是public class Test
{
public static void main(String[] args)
{
String st2 = "1828356512";
char[] ch2 = st2.toCharArray();
int[] b = new int[ch2.length];
for(int i = 0; i < ch2.length; i++)
{
b[i] = ch2[i];
}
for(int i = 0; i < b.length; i++)
{
System.out.print((b[i]-'0') + " ");
}
}
}
for(int i = 0; i < ch2.length; i++)
{
b[i] = ch2[i]-'0';//减去'0'就ok!
}
你的代码的输出是 49 56 50 56 51 53 54 53 49 50
你想要的输出是 1 8 2 8 3 5 6 5 1 2
正好相差48;
public class Test14
{
public static void main(String[] args)
{
String st2 = "zhaoming";
char[] ch2 = st2.toCharArray();
int[] b = new int[ch2.length];
for(int i = 0; i < ch2.length; i++)
{
b[i] = ch2[i];
}
for(int i = 0; i < b.length; i++)
{
System.out.print(b[i]-'0' + " ");
}
}} 这样输出的值也是数字,
toCharArray
public char[] toCharArray()将此字符串转换为一个新的字符数组。 返回:
一个新分配的字符数组,它的长度是此字符串的长度,它的内容被初始化为包含此字符串表示的字符序列。
char[] ch2 = st2.toCharArray();
而应该这么遍历:
for(int i=0;i<str2.length();i++){
System.out.println(str2.substring(i,i+1);
}