charAt() 方法如何从字符串中获取数字并将它们放入 Java 中的新字符串中?

Posted

技术标签:

【中文标题】charAt() 方法如何从字符串中获取数字并将它们放入 Java 中的新字符串中?【英文标题】:How does the charAt() method work with taking numbers from strings and putting them into new strings in Java? 【发布时间】:2020-07-30 19:06:57 【问题描述】:
public String getIDdigits()
    
        String idDigits = IDnum.charAt(0) + IDnum.charAt(IDnum.length() - 1) + "";
        return idDigits;
    

在这个简单的方法中,IDnum 是一个由数字组成的 13 位字符串并且是一个类变量,给定的输出绝不是我所期望的。对于 1234567891234 这样的 ID 号,我希望在输出中看到 14,但输出始终是 101 等三位数字。无论我使用什么 ID 号,它始终是一个以 10 开头的 3 位数字. 我认为使用空引号可以避免取 Ascii 值的问题,但我似乎仍然会出错。请问有人能解释一下 charAt() 在这个意义上是如何工作的吗?

【问题讨论】:

【参考方案1】:

您从String 中获取char 类型,然后使用+ 运算符,在这种情况下,其行为是将ASCII 数值相加。

例如,在您的代码中获取字符'1',然后是字符'4'

IDnum.charAt(0) + IDnum.charAt(IDnum.length() - 1)

编译器将其解释为其 ASCII 十进制等价物并添加它们

49 + 52 = 101

这就是你的 3 位数的来源。

在连接它们之前将它们转换回字符串来消除这种情况......

String.valueOf(<char>);

"" + IDnum.charAt(0) + IDnum.charAt(IDnum.length() - 1)

【讨论】:

【参考方案2】:

试试这个。

public String getIDdigits()
    
        String idDigits = "" + IDnum.charAt(0) + IDnum.charAt(IDnum.length() - 1);
        return idDigits;
    

当你第一次添加一个空时,它会添加char,比如String,如果你把它放在最后,它首先添加数字模式(ASCII),然后转换会将其转换为String

【讨论】:

【参考方案3】:

您必须更明确地了解字符串连接,因此像这样解决您的语句:

String idDigits = "" + IDnum.charAt(0) + IDnum.charAt(IDnum.length() - 1);

添加 Java chars、shorts 或 bytes 的结果是一个 int:

【讨论】:

以上是关于charAt() 方法如何从字符串中获取数字并将它们放入 Java 中的新字符串中?的主要内容,如果未能解决你的问题,请参考以下文章

javascript中常用操作字符串的几种方法charAt()indexOf()slice()substr()

js中如何获取一个字符串最后一个字符?

字符串获取类封装检测数字的方法

js获取字符串最后一位方法

js获取字符串最后一个字符代码

给出字符串分别计算出字符串中数字大小写字母的个数。(两种方法 getBytes( ) charAt( ) )