charAt()方法如何从字符串中提取数字并将其放入Java中的新字符串中?
在这个简单的方法中,IDnum是一个由数字组成的13位字符串,是一个类变量,给定的输出永远不是我所期望的。对于像1234567891234这样的ID号,我希望在输出中看到14,但是输出总是一个三位数的数字,比如101。无论我使用什么身份证号码,它都是一个以10开头的3位数字。我认为使用空引号可以避免使用Ascii值的问题,但我似乎仍然出错。有人能解释一下charAt()在这个意义上是如何工作的吗?您必须更明确地说明字符串连接,因此请像这样解决您的语句:charAt()方法如何从字符串中提取数字并将其放入Java中的新字符串中?,java,string,ascii,charat,Java,String,Ascii,Charat,在这个简单的方法中,IDnum是一个由数字组成的13位字符串,是一个类变量,给定的输出永远不是我所期望的。对于像1234567891234这样的ID号,我希望在输出中看到14,但是输出总是一个三位数的数字,比如101。无论我使用什么身份证号码,它都是一个以10开头的3位数字。我认为使用空引号可以避免使用Ascii值的问题,但我似乎仍然出错。有人能解释一下charAt()在这个意义上是如何工作的吗?您必须更明确地说明字符串连接,因此请像这样解决您的语句: String idDigits=“”+ID
String idDigits=“”+IDnum.charAt(0)+IDnum.charAt(IDnum.length()-1);
添加Java字符、短字符或字节的结果是int:试试这个
公共字符串getIDdigits()
{
字符串idDigits=“”+IDnum.charAt(0)+IDnum.charAt(IDnum.length()-1);
返回idDigits;
}
当你第一次添加一个空的字符时,它是add
char
像String
如果你把它放在末尾,它首先以数字模式(ASCII)添加,然后转换将把它转换成String你是从字符串
中获取char
类型,然后使用+
操作符,在本例中,其行为是将ASCII数值相加
例如,在代码中取字符'1'
,然后取字符'4'
public String getIDdigits()
{
String idDigits = IDnum.charAt(0) + IDnum.charAt(IDnum.length() - 1) + "";
return idDigits;
}
编译器将其解释为ASCII十进制值并添加这些值
IDnum.charAt(0) + IDnum.charAt(IDnum.length() - 1)
这就是你的3位数的来源
通过在连接它们之前将它们转换回字符串来消除这种情况
49 + 52 = 101
String.valueOf(<char>);
"" + IDnum.charAt(0) + IDnum.charAt(IDnum.length() - 1)