En Java, nous rencontrons souvent des scénarios qui nécessitent une conversion de type de données. La conversion de données de type String en type Int est un scénario relativement courant. Il existe deux méthodes de conversion principales :
1. ) Méthode
2. résultats de l'exécution, deux méthodes peuvent compléter la conversion de chaîne en entier.
Mais il convient de noter qu'il existe une condition préalable à l'utilisation de ces deux méthodes, à savoir Le contenu de la chaîne à convertir doit être constitué de nombres purs.
Il n'est pas difficile de constater que les chaînes à convertir dans la démo ci-dessus sont toutes des chaînes composées de nombres purs tels que "31" et "32". Si d'autres caractères que des nombres apparaissent dans la chaîne à convertir, le le programme lèvera une exception. Comme le montre la démo ci-dessous, ajoutez des lettres anglaises minuscules à la chaîne et enveloppez le segment de code avec des instructions try-catch pour intercepter les exceptions qui peuvent survenir. (Parce que nous savons déjà que la conversion d'une chaîne avec des lettres en un entier entraînera une exception de conversion de format numérique, nous choisissons donc d'attraper NumberFormatException)
public void convert() { // 1.使用Integer.parseInt(String) String str1 = "31"; Integer num1 = Integer.parseInt(str1); System.out.print("字符串31转换为数字:"); System.out.println(num1); // 2.使用Integer.valueOf(String) String str2 = "32"; Integer num2 = Integer.valueOf(str2); System.out.print("字符串32转换为数字:"); System.out.println(num2); }
Comme le montrent les résultats de l'exécution, ce code se trouve dans Integer.parseInt( String) et Integer respectivement. La position .valueOf(String) a déclenché une exception NumberFormatException. La raison est qu'il y a des lettres anglaises dans la chaîne convertie et ne peut pas être convertie en un entier.
Nous pouvons utiliser System.nanoTime() pour vérifier la différence de temps d'exécution des deux méthodespublic void convert() {
// 1.Integer.parseInt(String)
try {
String str1 = "31a";
Integer num1 = Integer.parseInt(str1);
System.out.print("字符串31a转换为数字:");
System.out.println(num1);
} catch (NumberFormatException e) {
System.out.println("Integer.parseInt(String)方法执行异常");
e.printStackTrace();
}
// 1.Integer.valueOf(String)
try {
String str2 = "32b";
Integer num2 = Integer.valueOf(str2);
System.out.print("字符串32b转换为数字:");
System.out.println(num2);
} catch (NumberFormatException e) {
System.out.println("Integer.valueOf(String)方法执行异常");
e.printStackTrace();
}
}
Parmi elles, les valeurs d'intervalle1 et d'intervalle2 font respectivement référence à la différence de temps système avant et après l'exécution des deux méthodes, en unités C'est des nanosecondes. Après l'avoir exécutée plusieurs fois, vous pouvez constater que le temps d'exécution de la méthode Integer.valueOf(String) est plus court que celui de la méthode Integer.parseInt(String), et la performance est meilleure
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!