首页 > 编程知识 正文

如何将string转为char数组,将char数组强行转成int

时间:2023-05-03 07:25:57 阅读:21487 作者:3542

一:背景

在一个项目中,必须修改由数字(0到9 )组成的字符串中特定位置的特定数字。 首先将字符串转换为字符数组,然后利用数组的位置修改相应位置的值。 代码开发完成后,乱码(() ) )、故障诊断结果表明,将数字(0)、9 )转换为字符的态度是错误的。 为了加深印象,记下笔记。

2 :使用错误

将int型数字直接转换为char型数据,如下图-1所示:

publicclasstestchar { publicstaticvoidmain (字符串[ ] args ) for(intI=0,sum=9; I

system.out.print (' theintvalueis : ' I ' theconvertcharvalueis : );

系统. out.println (c;

}

}

}

图-1

三.正确使用

然后,我们发现字符类提供了相应的转换方法,并执行效果,如以下代码所示。 如图(图2 )所示

publicclasstestchar { publicstaticvoidmain (字符串[ ] args ) for(intI=0,sum=9; i=sum; I ) charc=character.fordigit(I,10 );

system.out.print (' theintvalueis : ' I ' theconvertcharvalueis : );

系统. out.println (c;

}

}

}

当然,如果我们的前提条件只是将10个int类型的数字(0到9 )转换为相应的字符表示形式,那么除了字符类提供的方法以外,还有其他选择。 例如,有以下简单的处理方法

方式2:int-String-char

publicclasstestchar { publicstaticvoidmain (字符串[ ] args ) for(intI=0,sum=9; i=sum; I ) charc=string.valueof(I ).charAt(0) 0;

system.out.print (' theintvalueis : ' I ' theconvertcharvalueis : );

系统. out.println (c;

}

}

}

方式3 :用与文字数字的表现形式对应的数字直接转换

publicclasstestchar { publicstaticvoidmain (字符串[ ] args ) for(intI=0,sum=9; i=sum; I ) charc=(char ) ) )0) I );

system.out.print (' theintvalueis : ' I ' theconvertcharvalueis : );

系统. out.println (c;

}

}

}

方式4 :和方式3相同的道理

publicclasstestchar { publicstaticvoidmain (字符串[ ] args ) for(intI=0,sum=9; i=sum; I ) charc=(char ) ) 48 i;

system.out.print (' theintvalueis : ' I ' theconvertcharvalueis : );

系统. out.println (c;

}

}

}

四.问题

为什么使用int直接转换为char的方法是错误的?

嗯,回答这个问题需要理解char的本质

char 3360 thechardatatypeisasingle 16-bitunicodecharacter.ithasaminimumvalueof ' _ u 0000 ' (or0 ) andamaximumvalueof'_ ()

简单的java数据类型(如char )的特点如下:

java语言的八种基本数据类型之一

占2:2字节的16位

3 :最小值为0,最大值为65535

4 :可以用单引号括起来,例如“1”、“a”和“中”,可以用0到0~65535的十进制(也可以是其他进制)整数表示,也可以用“u0000”到“~「ffff”

5 :默认值为“u0000”(或0 )

6 )只有一个字,多,否则不行(空格也是文字) )。

在将int型数据强烈变换为char型数据的情况下,int数据类型是4字节的数据,所以(int的值在char型的范围外时会失去一定的位数),在这种情况下,char型的数据值是与int型的值对应的Unicode编码

(五)其他

下面的简单代码示例和执行结果正好印证了我们的上述观点

publicclasstestchar4{ publicstaticvoidmain { string [ ] args }

system.out.println('1);

system.out.println('a );

System.out.println ('中);

System.out.println (' '; //System.out.println ('; //编译错误,字面//System.out.println ('美国); //编译错误,字符太多,相对于字符字面量

charmax=(char ) ) Character.MAX_VALUE 1;

system.out.println(max; charmin=(char ) ) Character.MIN_VALUE-1;

system.out.println(min; char a=49;

系统. out.println (a; char b=65535; //char b1=65536; //编译失败,发现报纸必须是char型,却是int型

系统. out.println (b ); char c=0; //char c1=-1; //编译失败,发现报纸必须是char型,却是int型

系统. out.println (c; char d='1' 1;

系统. out.println (d; char e='1' '1';

系统. out.println (e; char f='国' 1;

系统. out.println (f;

}

}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。