如何在 Java 中把一个整数转换成一个字符串

本教程讨论了在 Java 中把一个整数转换成字符串的方法。在 Java 中,变量作为一个存储单元,需要在使用前进行声明。一个典型的声明是这样的。

String x = "test";
int y = 0;

变量的值可以随着时间的推移而被修改但是不可能分配一个不同数据类型的值或者改变变量的数据类型。比如说。

int x = 5;
x = "test";

它将抛出以下错误。

> error: incompatible types: String cannot be converted to int
>	x = "test";

同样的,如果我们试图重新分配一个已经声明的变量的数据类型,

int x = 5;
String x = "test";

它又会抛出一个错误。

> error: variable x is already defined in method main(String[])
> 	String x = "test";

现在我们已经很好地理解了变量在 Java 中的表现让我们来讨论一下如何在 Java 中把一个整数转换成一个字符串。给定一个整数。

int x = 1234;

我们想把这个值转换为一个字符串并把它保存在一个字符串变量中。

String str_x = "1234";

在 Java 中使用 String.valueOf(number) 把整数转换成字符串

Java 中的 String 类有几个默认的方法,我们将使用 String.valueOf(number) 将整数转换成字符串。我们将使用 String.valueOf(number) 将一个整数转换成一个字符串。

public class MyClass {
    public static void main(String args[]) {
        int x = 5;
        String str_x = String.valueOf(x);
        System.out.println(str_x);
    }
}

输出:

> 5

在 Java 中使用字符串连接法将整数转换成字符串

我们也可以使用字符串连接法将整数值转换为字符串 – "" + integer

public class MyClass {
    public static void main(String args[]) {
        int x = 5;
        String str_x = "" + x;
        System.out.println(str_x);
    }
}

输出:

> 5

在 Java 中使用 Integer.toString(number) 把整数转换为字符串

Java 中的 Integer 类还提供了几个默认方法。我们将使用 Integer.toString(number) 将一个整数值转换为字符串。

public class MyClass {
    public static void main(String args[]) {
        int x = 5;
        String str_x = Integer.toString(x);
        System.out.println(str_x);
    }
}

输出:

> 5

结论: Integer.toString(number) 将整数转换成字符串

我们已经讨论了三种不同的方法,在 Java 中把一个整数值转换为字符串。虽然这三种方法都能正常工作,但建议大家避免使用字符串连接,因为它增加了开销,而且效率不如 Integer.toString(number)String.valueOf(number)

如何在 Java 中把一个字符串转换为字符 Char

本教程讨论了在 Java 中把字符串转换为字符 char 的方法。

在 Java 中 charAt() 把字符串转换为字符 char

将字符从字符串转换为 char 的最简单方法是使用 charAt(index) 方法。该方法将一个整数作为输入,并将给定索引上的字符作为一个 char 返回。

下面的例子说明了这一点。

public class MyClass {
    public static void main(String args[]) {
        String myString = "string";
        char myChar = myString.charAt(0);
        System.out.println(myChar);
    }
}

输出:

> s

然而,如果你试图输入一个大于字符串长度的整数,它将抛出一个错误。

下面的例子说明了这一点。

public class MyClass {
    public static void main(String args[]) {
        String myString = "string";
        char myChar = myString.charAt(6);
        System.out.println(myChar);
    }
}

输出:

> Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 6
	at java.base/java.lang.StringLatin1.charAt(StringLatin1.java:47)
	at java.base/java.lang.String.charAt(String.java:693)
	at MyClass.main(MyClass.java:4)

在 Java 中 toCharArray() 把字符串转换为字符 Char

如果我们想将整个字符串转换为一个字符数组,我们可以使用这个方法。

下面的例子说明了这一点。

public class MyClass {
    public static void main(String args[]) {
        String myString = "string";
        char[] myChars = myString.toCharArray();
        for (int i=0; i<myChars.length; i++){
            System.out.println(myChars[i]);
        }
    }
}

结果是:

s
t
r
i
n
g

如果我们想访问某个特定位置的 char,我们可以简单地使用 myChars[index] 来获取指定位置的字符 char

如何在 Java 中把一个字符串转换为一个整型 int

本教程介绍了如何在 Java 中把一个字符串 String 转换成一个整型 int,并列举了一些示例代码来理解它。

在 Java 中使用 parseInt() 将字符串 String 转换为整型 int

Stringint 都是 Java 中的数据类型。String 用于存储文本信息,而 int 用于存储数字数据。

在这里,我们使用 Integer 类的 parseInt() 方法,返回一个 Integer。由于 Java 做了隐式自动装箱,那么我们可以将其存储成 int 基元类型。请看下面的例子。

public class SimpleTesting {
	public static void main(String[] args) {
		String str = "1234";
		int int_val = Integer.parseInt(str);
		System.out.println(int_val);
	}
}

输出:

1234

在 Java 中使用 ApacheString 转换为 int

如果你正在使用 Apache 库,你可以使用 NumberUtils 类的 toInt() 方法返回一个 int 值。如果传递的字符串中包含任何非数字字符,这个方法不会抛出任何异常,而是返回 0。使用 toInt() 比使用 parseInt() 是安全的,因为 parseInt() 会抛出 NumberFormatException。请看下面的例子。

import org.apache.commons.lang3.math.NumberUtils;
public class SimpleTesting {
	public static void main(String[] args) {
		String str = "1234";
		int int_val = NumberUtils.toInt(str);
		System.out.println(int_val);
		str = "1234x"; // non-numeric string
		int_val = NumberUtils.toInt(str);
		System.out.println(int_val);
	}
}

输出:

1234
0

使用 Java 中的 decode()String 转换为 int

我们可以使用 Integer 类的 decode() 方法从一个字符串中获取 int 值。它返回 Integer 值,但如果你想得到 int(基本)值,则使用 intValue()decode() 方法。请看下面的例子。

public class SimpleTesting {
	public static void main(String[] args) {
		String str = "1424";
		int int_val = Integer.decode(str);
		System.out.println(int_val);
		// int primitive
		int_val = Integer.decode(str).intValue();
		System.out.println(int_val);
	}
}

输出:

1424

使用 Java 中的 valueOf()String 转换为 int

我们可以使用 valueOf() 方法来获取一个字符串转换后的 int 值。

public class SimpleTesting {
	public static void main(String[] args) {
		String str = "1424";
		int int_val = Integer.valueOf(str);
		System.out.println(int_val);
	}
}
1424
1424

在 Java 中使用 parseUnsignedInt()String 转换为 int

如果我们要转换一个不包含符号的字符串,使用 parseUnsignedInt() 方法来获取 int 值。它对无符号字符串的值工作正常,如果值是有符号的,则会抛出一个异常。

public class SimpleTesting {
	public static void main(String[] args) {
		String str = "1424";
		int int_val = Integer.parseUnsignedInt(str);
		System.out.println(int_val);
	}
}

输出:

1424

在 Java 中使用 replaceAll() 删除非数字字符后转换字符串

如果字符串中包含非数字字符,则使用 String 类的 replaceAll() 方法与 regex 删除所有非数字字符,然后使用 Integer 类的 parseInt() 方法得到其等价的整数值。请看下面的例子。

public class SimpleTesting {
	public static void main(String[] args) {
		String str = "1424x";
		str = str.replaceAll("[^\\d]", "");
		int int_val = Integer.parseInt(str);
		System.out.println(int_val);
	}
}

输出:

1424

如何在 Java 中把一个字符串转换为长整型

本教程来讨论在 Java 中把 String 转换为长整型 Long 的方法。

在 Java 中 Long.parseLong() 把 Sting 转换为长整型 Long

我们可以使用 Long 类的一个内置方法将代表数字的 String 转换为 Long

下面的例子说明了这一点。

public class MyClass {
    public static void main(String args[]) {
        String myString = "24";
        Long myLong = Long.parseLong(myString);
        System.out.println(myLong);
    }
}

输出:

> 24

然而,如果输入的字符串不是一个有效的数字,这个方法将抛出一个错误。

下面的例子说明了这一点。

public class MyClass {
    public static void main(String args[]) {
        String myString = "one";
        Long myLong = Long.parseLong(myString);
        System.out.println(myLong);
    }
}

输出:

>
Exception in thread "main" java.lang.NumberFormatException: For input string: "one"
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.base/java.lang.Long.parseLong(Long.java:692)
at java.base/java.lang.Long.parseLong(Long.java:817)
at MyClass.main(MyClass.java:4)

我们可以使用 try-catch 块来避免这个问题。

public class MyClass {
    public static void main(String args[]) {
        String myString = "one";
        Long myLong;
        try{
            myLong = Long.parseLong(myString);
            System.out.println(myLong);
        }
        catch (Exception e) {
            System.out.println("The input string does not represent a valid number");
        }
    }
}

输出:

> The input string does not represent a valid number

在 Java 中 new Long(str).longValue() 转换 Sting 为 Long

我们可以创建一个新的 Long 对象,输入一个代表数字的字符串并返回一个新的 Long

下面的例子说明了这一点。

public class MyClass {
    public static void main(String args[]) {
        String myString = "1";
        Long myLong;
        try{
            myLong = new Long(myString).longValue();
            System.out.println(myLong);
        }
        catch (Exception e) {
            System.out.println("The input string does not represent a valid number");
        }
    }
}

输出:

1

在 Java 中 Long.valueOf().longValue() 转换 Sting 为 Long

Long 类还提供了另一种方法来将代表数字的字符串转换为 Long

下面的例子说明了这一点。

public class MyClass {
    public static void main(String args[]) {
        String myString = "1";
        Long myLong;
        try{
            myLong = Long.valueOf(myString).longValue();
            System.out.println(myLong);
        }
        catch (Exception e) {
            System.out.println("The input string does not represent a valid number");
        }
    }
}

在三个讨论的方法中,我们可以使用其中任何一个方法将一个有效的字符串转换为 Long。如果我们确信给定的 String 代表一个有效的数字,或者如果我们不想优雅地处理异常,我们可以跳过 try-catch 块。

如何在 JavaScript 中把一个值转换为布尔值

布尔值是一种基本数据类型,代表真或假。在布尔语境中,JavaScript 利用类型转换来将值转换成真/假。有一些隐式和显式的方法可以将数值转换为对应的布尔值。

这篇文章提供了一个关于真假值的概述,以及如何在 JavaScript 中把值转换成布尔值。

JavaScript 真假值检查单

Boolean(false);         // false
Boolean(undefined);     // false
Boolean(null);          // false
Boolean('');            // false
Boolean(NaN);           // false
Boolean(0);             // false
Boolean(-0);            // false
Boolean(0n);            // false

Boolean(true);          // true
Boolean('hi');          // true
Boolean(1);             // true
Boolean([]);            // true
Boolean([0]);           // true
Boolean([1]);           // true
Boolean({});            // true
Boolean({ a: 1 });      // true
Source: What are truthy and falsy values in JavaScript?

最好先了解哪些值会被 JavaScript 解释为真值或假值。与显式强制相比,理解隐式强制也很重要。

隐式强制是由 JavaScript 引擎发起并自动发生的。显式强制是通过手动转换值来进行的,JavaScript 提供了内置的方法来处理这个问题。

!! 操作符

!!value

你可能已经熟悉了 ! 作为逻辑上的 NOT 运算符。当连续使用两个(!!)时,第一个 ! 将数值强制为布尔值,并将其倒置。例如 !true 是 false。第二个 ! 将先前的值反转,结果是真的布尔值。

这通常是一个首选方法,因为它有更好的性能。这种方法的潜在缺点是如果其他开发者不熟悉这个运算符的工作方式,就少了些可读性。

const value = "truthy string"
!!value // true

下面的例子通过分解步骤来介绍它:

const value = "truthy string";

!value; // false
!!value; // true

下面是使用 !! 操作符的示例输出:

// 假值

!!'' // false
!!false // false
!!null // false
!!undefined // false
!!0 // false
!!NaN // false


// 真值

!![] // true
!!"false" // true
!!true // true
!!1 // true
!!{} // true

Boolean() 函数

Boolean(value)

Boolean() 是一个全局函数,它将传递给它的值转换为布尔值。

你不应该将其与 new 关键字(new Boolean)一起使用,因为这将创建一个具有对象类型的布尔值实例。下面是一个正确使用这个函数的例子。

const value = "truthy string"
Boolean(value) // true

TL;DR

在 JavaScript 中,有两种方法可以将一个值转换为布尔值。

1. !!

!!value

2. Boolean()

Boolean(value)
const finalThoughts = "I really enjoyed writing this article. Thanks for reading!"

!!finalThoughts // true
Boolean(finalThoughts) // true