Java字符串如何转换为long型
在Java编程中,经常会遇到将字符串转换为long型的需求。字符串转换为long型可以用于处理用户输入、读取文件中的数字等场景。本文将介绍两种常用的方法来实现Java字符串到long型的转换,并提供代码示例和解决一个具体问题的方案。
方法一:使用Java内置的Long.parseLong()
方法
Java提供了一个内置的方法Long.parseLong()
,可以将字符串转换为long型。这个方法的语法如下:
public static long parseLong(String s) throws NumberFormatException
其中,s
是要转换的字符串。这个方法会尝试将字符串解析为一个有符号的十进制数,并返回对应的long型结果。如果字符串无法解析为long型,会抛出NumberFormatException
异常。
下面是使用Long.parseLong()
方法将字符串转换为long型的示例代码:
String str = "12345";
long num = Long.parseLong(str);
System.out.println(num); // 输出:12345
方法二:使用Java内置的Long.valueOf()
方法
另一种将字符串转换为long型的方法是使用Long.valueOf()
方法。这个方法的语法如下:
public static Long valueOf(String s) throws NumberFormatException
与Long.parseLong()
方法类似,s
是要转换的字符串。Long.valueOf()
方法会尝试将字符串解析为一个有符号的十进制数,并返回对应的Long
对象。如果字符串无法解析为long型,同样会抛出NumberFormatException
异常。
下面是使用Long.valueOf()
方法将字符串转换为long型的示例代码:
String str = "12345";
Long num = Long.valueOf(str);
System.out.println(num); // 输出:12345
需要注意的是,Long.valueOf()
方法返回的是一个Long
对象,而不是基本数据类型long。如果需要将Long
对象转换为基本数据类型long,可以使用Long.longValue()
方法。
解决一个具体问题的方案
假设我们需要实现一个简单的学生成绩管理系统,要求用户输入学生的分数,并计算平均分。用户输入的成绩以字符串的形式给出,例如"90"、"85"等。我们需要将这些字符串转换为long型,然后进行计算。
下面是一个基于命令行界面的学生成绩管理系统的设计方案:
classDiagram
class Student {
-name: String
-scores: List<Long>
+Student(name: String)
+addScore(score: long)
+getAverageScore(): double
}
class ScoreManager {
-students: List<Student>
+ScoreManager()
+addStudent(name: String)
+addScore(name: String, score: long)
+getAverageScore(name: String): double
}
首先,我们定义一个Student
类来表示学生对象。这个类包含一个学生姓名和一个成绩列表。成绩列表使用List<Long>
来存储学生的分数。
import java.util.ArrayList;
import java.util.List;
public class Student {
private String name;
private List<Long> scores;
public Student(String name) {
this.name = name;
this.scores = new ArrayList<>();
}
public void addScore(long score) {
scores.add(score);
}
public double getAverageScore() {
if (scores.isEmpty()) {
return 0;
}
long sum = 0;
for (long score : scores) {
sum += score;
}
return (double) sum / scores.size();
}
}
然后,我们定义一个ScoreManager
类来管理学生成绩。这个类包含一个学生列表,可以添加学生和成绩,并计算某个学生的平均分。
import java.util.ArrayList;
import java.util.List;
public class ScoreManager {
private List<Student> students;
public ScoreManager() {
this.students = new ArrayList<>();
}
public void addStudent(String name) {
Student student = new Student(name);
students.add(student);
}
public void addScore(String name, long score) {
for (Student student : students) {
if (student.getName().equals(name)) {
student.addScore(score);
return;
}
}
throw new IllegalArgumentException("Student not found: " + name);
}
public double getAverageScore(String name) {
for (Student student : students) {