java中的Integer.valueOf()是否转换为C#中的int.Parse()?

时间:2011-11-08 07:39:21

标签: c# java

我正在尝试从C#背景学习java!我在旅程中发现了一些细微差别,比如C#没有Integer作为引用类型它只有int作为基本类型;这让我怀疑这个翻译是否正确!

  String line ="Numeric string";//Java
  string line = "Numeric string";//C#
  int size;

  size = Integer.valueOf(line, 16).intValue(); //In Java

  size = int.Parse(line,System.Globalization.NumberStyles.Integer);//In C#

2 个答案:

答案 0 :(得分:4)

不,这不是一个有效的翻译 - 因为Java代码中的16意味着它应该被解析为整数。 Java代码更接近:

int size = Convert.ToInt32(line, 16);

overload of Convert.ToInt32允许您指定基础。

或者你可以使用:

int size = int.Parse("11", NumberStyles.AllowHexSpecifier);

我不喜欢名称“允许十六进制说明符”,因为它表明将接受“0x”的前缀...但实际上它意味着它的总是被解释为十六进制。

答案 1 :(得分:1)

在java中,这样更好:

Integer.parseInt(line, 16);

将字符串解析为 int ,而 Integer.valueOf 转换为整数