【问题标题】:Convert string number to integer number [duplicate]将字符串数字转换为整数[重复]
【发布时间】:2013-10-06 20:07:14
【问题描述】:

我有“1”作为字符串,我想将其转换为十进制,1,作为整数。

我试过charAt(),但它返回 49,而不是 1 个整数。

那么,将“1”字符串转换为1个整数需要什么?

【问题讨论】:

  • 你看到String API了吗?
  • 49 是字符 1 的数字等价物。要获取单个字符的数值,可以这样做:c - '0'。所以,'1' - '0' = 1.
  • @Obicere - 是的,虽然这几乎肯定不是 OP 想要的,但值得指出。理解(概念)数字与其物理表示之间的区别的重要一步。
  • @HotLicks 如果他希望创建自己的解析方法,这将非常有用。
  • @Obicere - 是的,特别是如果他的导师分配他从头开始编写数字解析器的任务。 (而且这似乎是一项很受欢迎的任务,而且很多人都放弃了他们的选择。)

标签: java


【解决方案1】:

使用包装类。

示例如下

int

int a = Integer.parseInt("1"); // Outputs 1

浮动

float a = Float.parseFloat("1"); // Outputs 1.0

double a = Double.parseDouble("1"); // Outputs 1.0

long a = Long.parseLong("1"); // Outputs 1

【讨论】:

  • 或浮点数或双精度数,具体取决于数据类型。
【解决方案2】:
int one = Integer.parseInt("1");

理想情况下,您也应该捕获错误:

int i;
String s = "might not be a number";
try {
   i = Integer.parseInt(s);
} catch (NumberFormatException e) {
   //do something
}

【讨论】:

    【解决方案3】:

    Integer.parseInt 正是这样做的。

    int foo = Integer.parseInt("1");
    

    【讨论】:

      【解决方案4】:
      int foo = Integer.parseInt("1");
      //foo now equals 1
      

      【讨论】:

        【解决方案5】:
        String s = "1";
        int i = Integer.valueOf(s);
        

        【讨论】:

          猜你喜欢
          • 2010-11-21
          • 1970-01-01
          • 1970-01-01
          • 2022-11-28
          • 2011-07-01
          • 2022-08-05
          • 2016-01-06
          • 2019-11-08
          相关资源
          最近更新 更多