我在Java中得到了一个简单的问题:如何将long . tostring()获得的字符串转换为长字符串?


当前回答

public class StringToLong {

   public static void main (String[] args) {

      // String s = "fred";    // do this if you want an exception

      String s = "100";

      try {
         long l = Long.parseLong(s);
         System.out.println("long l = " + l);
      } catch (NumberFormatException nfe) {
         System.out.println("NumberFormatException: " + nfe.getMessage());
      }

   }
}

其他回答

最好的方法是long . valueof (str),因为它依赖于long . valueof (long),它使用内部缓存,使其更有效,因为它将在需要时重用缓存的long实例,包括从-128到127。

返回表示指定长值的Long实例。如果一个 new Long实例不是必需的,这个方法一般应该是 优先使用构造函数Long(Long),就像这个方法一样 可能会产生明显更好的空间和时间性能 缓存频繁请求的值。注意,不像 在Integer类中对应的方法,此方法不是必需的 缓存特定范围内的值。

由于自动开箱允许将包装器类的实例转换为相应的基元类型,代码将是:

long val = Long.valueOf(str);

请注意,如果提供的String与带符号的long不匹配,前面的代码仍然可以抛出NumberFormatException。

一般来说,使用包装器类的静态工厂方法valueOf(str)是一个很好的实践,例如Integer, Boolean, Long,…因为它们中的大多数在可能的情况下重用实例,这使得它们在内存占用方面比相应的解析方法或构造函数更有效。


摘自《Effective Java Item 1》,作者Joshua Bloch:

通过使用静态,通常可以避免创建不必要的对象 factory方法(第1项)优先于immutable上的构造函数 提供两者的类。例如,静态工厂方法 Boolean.valueOf(String)几乎总是优于 构造函数的布尔(字符串)。构造函数创建一个新对象 每次它都被调用,而静态工厂方法从未被调用 被要求这样做,但在实践中不会。

有几种方法可以将String转换为long:

1)

long l = Long.parseLong("200"); 
String numberAsString = "1234";
long number = Long.valueOf(numberAsString).longValue();
String numberAsString = "1234";
Long longObject = new Long(numberAsString);
long number = longObject.longValue();

我们可以缩短为:

String numberAsString = "1234";
long number = new Long(numberAsString).longValue();

或者只是

long number = new Long("1234").longValue();

使用十进制格式:

String numberAsString = "1234";
DecimalFormat decimalFormat = new DecimalFormat("#");
try {
    long number = decimalFormat.parse(numberAsString).longValue();
    System.out.println("The number is: " + number);
} catch (ParseException e) {
    System.out.println(numberAsString + " is not a valid number.");
}

要将String转换为Long(对象),请使用Long。返回对象的值(字符串).longValue ();

看到链接

使用Long.parseLong ()

 Long.parseLong("0", 10)        // returns 0L
 Long.parseLong("473", 10)      // returns 473L
 Long.parseLong("-0", 10)       // returns 0L
 Long.parseLong("-FF", 16)      // returns -255L
 Long.parseLong("1100110", 2)   // returns 102L
 Long.parseLong("99", 8)        // throws a NumberFormatException
 Long.parseLong("Hazelnut", 10) // throws a NumberFormatException
 Long.parseLong("Hazelnut", 36) // returns 1356099454469L
 Long.parseLong("999")          // returns 999L

这很简单,使用 长。返回对象的值(字符串);

例如:

String s;
long l;

Scanner sc=new Scanner(System.in);
s=sc.next();
l=Long.valueOf(s);
System.out.print(l);

你做完了! !