【问题标题】:Convert a string to number without using any java conversion functions/utility classes将字符串转换为数字而不使用任何 java 转换函数/实用程序类
【发布时间】:2012-04-16 19:49:29
【问题描述】:

我在一次 Java 面试中被要求编写一个程序,该程序可以将字符串(例如“123”)转换为数字 123,而无需使用任何 java 的转换函数/实用程序类。

如果这可能,我仍然感到困惑。有任何想法吗 ? 谢谢

【问题讨论】:

  • 什么算作实用程序类?你能有一个字符串到数字的映射,遍历字符串,通过字符串查找数字,然后构造数字吗?

标签: string numbers data-conversion


【解决方案1】:

将字符串分解为单个字符,将每个字符映射到其数值,然后通过将每个字符乘以其位置值来组合。

【讨论】:

    【解决方案2】:

    我应该让我的评论成为答案,这样我才能得到答案:)

    “什么算作实用程序类?你能有一个字符串到数字的映射,遍历字符串,通过字符串查找数字,然后构造数字吗?”

    在伪代码中:

    Map<String, Integer> = {
    "0":0,
    "1":1,
    "2":2,
    ... etc }
    
    int number = 0;
    
    for(i=string.length-1; i>=0; i--){
    String substr = string.substring(i, i+1);
    int digit = map.get(substr);
    number += 10^(string.length-i)*digit;
    }
    
    return number
    

    【讨论】:

    • Colleen 根据您提供的代码,我写了以下内容: Map map = new HashMap(); map.put("0", 0); map.put("1", 1); map.put("2", 2); map.put("3", 3); map.put("4", 4); map.put("5", 5); map.put("6", 6); map.put("7", 7); map.put("8", 8); map.put("9", 9);整数 = 0;字符串 myNumber = "456"; for(int i=0; i
    • 另外,“map”是一个复杂的Java对象,我想当我们使用map.get()函数时它可能会涉及到一些自动转换。我想知道面试官是否担心用更简单的方法。
    • 你需要从整数转换为整数(我没有,因为它是伪代码)。因此,如果您执行 int digit = (int) map.get(substr),它应该可以工作
    • 另外,数字的计算已关闭,我忘记了子字符串是包容性的,独占性的。对于那个很抱歉!我编辑了代码以反映这些变化。
    • 不过,我不确定如何更简单。除了可能像 2 个本质上充当地图的数组?
    猜你喜欢
    • 1970-01-01
    • 2023-04-09
    • 2014-06-17
    • 2017-05-04
    • 2016-04-12
    • 2011-11-25
    • 1970-01-01
    • 2014-02-26
    • 2018-11-24
    相关资源
    最近更新 更多