区块链技术博客
www.b2bchain.cn

原始类型int实际如何转换为String? – java程序员分享

本文介绍了原始类型int实际如何转换为String? – java程序员分享,有助于帮助完成毕业设计以及求职,是一篇很好的资料。

对技术面试,学习经验等有一些体会,在此分享。

首先,我的问题是关于如何将原始类型int转换为String而无需成为Object,从而没有toString()方法来获取String值。我非常了解您如何看似“在Java中将原始类型int的变量转换为String。我使用的最简单方法是:

int x = 5; String y = "" + x; 

这很好,但是我的问题是:
由于原始类型int不是对象,因此没有任何方法,例如toString()方法,据我所知,这样才能获取变量的String值…如果没有此方法,如何识别变量的值基本方法?

参考方案

通常,通过调用以下两种方法之一将int值转换为String:

  • StringBuilder.append(int i)
  • String.valueOf(int i)
  • 对于其他原始值,将使用这两种方法的相应重载。

    StringBuilder.append()

    编译器将"" + x表达式实现为:

    new StringBuilder().append("").append(x).toString() 

    x声明为int,这意味着将调用带有append()参数的int重载。

    append(int) 的源代码(Java 1.8.0_65)为:

    @Override public StringBuilder append(int i) {     super.append(i);     return this; } 

    super调用导致:

    public AbstractStringBuilder append(int i) {     if (i == Integer.MIN_VALUE) {         append("-2147483648");         return this;     }     int appendedLength = (i < 0) ? Integer.stringSize(-i) + 1                                  : Integer.stringSize(i);     int spaceNeeded = count + appendedLength;     ensureCapacityInternal(spaceNeeded);     Integer.getChars(i, spaceNeeded, value);     count = spaceNeeded;     return this; } 

    String.valueOf()

    在不使用字符串连接的情况下将值转换为String时,通常是通过调用String.valueOf()来完成的。对于表示 intvalueOf(int)值:

    public static String valueOf(int i) {     return Integer.toString(i); } 

    Integer.toString()调用为:

    public static String toString(int i) {     if (i == Integer.MIN_VALUE)         return "-2147483648";     int size = (i < 0) ? stringSize(-i) + 1 : stringSize(i);     char[] buf = new char[size];     getChars(i, size, buf);     return new String(buf, true); } 

    Integer.getChars()

    如您所见,两者都是通过实际调用package-private方法Integer.getChars(int i, int index, char[] buf)来实现的。

    它们实际上都没有创建Integer实例,即使JLS暗示会这样做。

    Java-将int更改为ascii – java

    java有没有办法将int转换为ascii符号? 参考方案 您是否要将int转换为char?:int yourInt = 33; char ch = (char) yourInt; System.out.println(yourInt); System.out.println(ch); // Output: // 33 // ! 还是要将int转换为Stri…

    Java:我可以在Hashmaps中使用数组吗? – java

    我可以在Hashmaps中使用数组吗?如果是这样,则声明这种哈希图的确切语法是什么?谢谢 参考方案 数组也是对象。甚至像int[]这样的原始数组。Map<String,String[]> map = new HashMap<String,String[]>();

    Java:找到特定字符并获取子字符串 – java

    我有一个字符串4.9.14_05_29_16_21,我只需要获取4.9。数字各不相同,所以我不能简单地获得此char数组的前三个元素。我必须找到最正确的.并将其子字符串化直到那里。我来自Python,因此我将展示Python的实现方法。def foobar(some_string): location = some_string.rfind('.&…

    Java string.hashcode()提供不同的值 – java

    我已经在这个问题上停留了几个小时。我已经注释掉所有代码,认为这与数组超出范围有关,但是这种情况仍在发生。我正在尝试使用扫描仪从文件中读取输入,存储数据并稍后使用哈希码获取该数据。但是哈希值不断变化。public static void main(String[] args) { //only prior code is to access data char…

    Java:正则表达式模式匹配器是否有大小限制? – java

    我的模式类似于OR:“word1 | word2 | word3”我大约有800个字。可能有问题吗? 参考方案 您仅受记忆和理智的限制。 🙂

    赞(0) 打赏
    部分文章转自网络,侵权联系删除b2bchain区块链学习技术社区 » 原始类型int实际如何转换为String? – java程序员分享
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址

    b2b链

    联系我们联系我们