java如何编写程序,读取本人学号的后5位数,并将该整数的各个位数数字相加,如10101,个位数之

java如何编写程序,读取本人学号的后5位数,并将该整数的各个位数数字相加,如10101,个位数之和为3

public class test {
public static void main(String[] argv){
String s = "11231323123";//学号
int sum = fun(s);
System.out.println(sum);
}
public static int fun(String studentId){
int sum =0;
for(int i=0;i<5;i++){
sum = sum + Integer.valueOf(studentId.substring(studentId.length()-i-1, studentId.length()-i)).intValue();
}

return sum;
}

}
纯手打请给分!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-01-06
public class Demo2 {
public static void main(String[] args) {
String no = "20160106";//学号
String sub = no.substring(no.length()-5);//学号末尾5位
int value = 0;
for (int i=0;i<sub.length();i++)
{
value += Integer.parseInt(sub.substring(i,i+1));
}
System.out.println(value);
}
}本回答被提问者采纳
第2个回答  2016-01-06
import java.util.Scanner;
public class test {
private static long stadyNo; //学号
private static String temp; //学号的字符串
private static String tempStr; //截取学号的最后五位的字符串
private static long sum = 0; //学号的最后五位的和
//输入学号
private static void input(){
System.out.print("请输入你的学号:");
/**因为变量stadyNo是一个long型,如果输入整数以外的数或字符会有异常
所以使用try...catch...finally来捕获和处理异常,try语句的作用就是
将有可能出现异常的语句写进来,然后出现异常后由catch捕获和处理该异常,
finally的作用是无论如何都要执行这个语句,所以是当学号小于10000的时候
执行
*/
try {
stadyNo = new Scanner(System.in).nextLong();
if(stadyNo<10000){
System.out.println("学号必须大于等于10000!");
System.out.println(" ");
//递归调用该函数,实现输入功能
input();
}
} catch (Exception e) {
//出现异常后提示并递归调用该函数,实现重新输入学号
System.out.println("你输入的学号不合法,请重新输入!");
System.out.println(" ");
input();
}finally{
if(stadyNo<10000){
System.out.println("学号必须大于等于10000!");
System.out.println(" ");
input();
}
}
}
public static void main(String[] args) {
input();
//将学号由long型转化成String型,以便计算
temp=""+stadyNo+"";
//循环截取学号字符串并反转学号字符串
for (int i = temp.length()-1; i >= 0; i--) {
tempStr += temp.substring(i,i+1);
}
//因为tempStr会显示null后面加所需字符串,所以只能从4开始往后截取
tempStr = tempStr.substring(4, tempStr.length());
//对个位数求和
for (int i = 0; i < 5; i++) {
//求和的时候将后五位的字符串依次截取出来
sum += Long.parseLong(tempStr.substring(i,i+1));
}
//打印并输出计算结果
System.out.println("学号"+stadyNo+"的最后五位个位数之和是"+sum);
}
}
第3个回答  2016-01-06
String sno = "s0811285";
//先截取后五个
String newSno = sno.substring(sno.length()-5);
int sum = 0;
for (int i = 0; i < 5; i++) {
//分别获得单个字符转换成int类型之后相加
sum += Integer.parseInt(newSno.charAt(i)+"") ;
}
System.out.println(sum);
你可以加一下异常处理,如果后五个中包含了字母的话会报number什么转换失败,你可以处理一下。
相似回答