# Java 程序：字符串到`long`的转换

> 原文： [https://beginnersbook.com/2013/12/how-to-convert-string-to-long-in-java/](https://beginnersbook.com/2013/12/how-to-convert-string-to-long-in-java/)

在本教程中，我们将看到**如何在 Java** 中将`String`转换为`long`。将`String`转换为`long`值有三种方法。

## 1\. 使用`Long.parseLong(String)`将`String`转换为`long`

[`Long.parseLong(String)`](https://docs.oracle.com/javase/7/docs/api/java/lang/Long.html#parseLong(java.lang.String))：字符串中的所有字符必须是除第一个字符外的数字，可以是数字或减号`-`。例如 - 允许`long var = Long.parseInt("-123");` ，转换后的`var`值为 -123。

### 使用`Long.parseLong(String)`将`String`转换为`long`

在此示例中，字符串`str2`在开头具有减号`'-'`，这就是变量`num2`的值为负的原因。

```java
public class JavaExample {
    public static void main(String[] args)
    {
	String str = "21111";
	String str2 = "-11111";

	//Conversion using parseLong(String) method
	long num = Long.parseLong(str);
	long num2 = Long.parseLong(str2);
	System.out.println(num+num2);		
    }
}

```

**输出：**

![Java String to Long conversion](img/08faa430dc7d1178d40aba8f2bcf88c1.jpg)

## 2\. 使用`Long.valueOf(String)`将`String`转换为`long`

[`Long.valueOf(String)`](https://docs.oracle.com/javase/7/docs/api/java/lang/Long.html#valueOf(java.lang.String))：将`String`转换为`long`值。与`parseLong(String)`方法类似，此方法还允许减号`'-'`作为`String`中的第一个字符。

### 使用`Long.valueOf(String)`将`String`转换为`long`

```java
public class Example {
   public static void main(String[] args)
   {
       String str = "11111";
       String str2 = "88888";
       //Conversion using valueOf(String) method
       long num = Long.valueOf(str);
       long num2 = Long.valueOf(str2);
       System.out.println(num+num2);		
   }
}
```

输出：

```java
99999
```

## 3\. 使用`Long`类的构造函数将`String`转换为`long`

[`Long(String s)`构造函数](https://docs.oracle.com/javase/7/docs/api/java/lang/Long.html#Long(java.lang.String))：`Long`类有一个构造函数，它允许`String`参数并创建一个新的`Long`对象，表示等效`long`值中的指定字符串。该字符串将以`parseLong(String)`方法用于基数 10 的方式完全转换为`long`值。

### 使用`new Long(String)`将`String`转换为`long`

```java
public class Example {
   public static void main(String[] args)
   {
       String str = "10000";
       String str2 = "22222";
       //Conversion using Long(String s) constructor
       long num = new Long(str);
       long num2 = new Long(str2);
       System.out.println(num*num2);		
   }
}

```

输出：

```java
222220000
```
