java - Integer.parseInt() 和 Integer.toString() 运行时

标签 java string integer tostring parseint

Integer.parseInt(String i) 和 Integer.toString(int i) 的运行时间都是 O(n) 吗?

最佳答案

是的,Integer.parseInt("1000")Integer.toString(1000) 的时间复杂度都是 O(N)

  • Integer.parseInt("1000")的内部代码在while循环中逐字符读取字符串并转换为十进制

  • Integer.toString(1000) 的内部代码读取整数并将每个数字转换为 char 并存储在 byte[] buf 中,然后创建新字符串来自字节数组

Here is the code of Integer.parseInt():

int i = 0, len = s.length();
int limit = -Integer.MAX_VALUE;
// some checks
int multmin = limit / radix;
int result = 0;
while (i < len) {
    // Accumulating negatively avoids surprises near MAX_VALUE
    int digit = Character.digit(s.charAt(i++), radix);
    if (digit < 0 || result < multmin) {
        throw NumberFormatException.forInputString(s, radix);
    }
    result *= radix;
    if (result < limit + digit) {
        throw NumberFormatException.forInputString(s, radix);
    }
    result -= digit;
}
return negative ? result : -result;

关于java - Integer.parseInt() 和 Integer.toString() 运行时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61782618/

相关文章:

java - Android - 使用 Haversine 公式计算距离(使用 GPS、Lat 和 Long)

java - Hadoop单伪分布式节点集群中的问题

java - java中如何删除字符串中的空值?

c++ - 如何访问 std::list<string> 中的某个元素

string - List<string> 的 linq 查询语法

java - java中int变量的08和8之间的区别

C 中初始化的结构成员不能用作整型常量吗?

安卓 : width and height must be > 0 for recycler view when Converting to Bitmap

java - 集成 openid connect 进行 SPA 应用的最佳方式

Javaagent类卸载