參考鏈接: Java中整數到字符串轉換的不同方法
package com.utl.string;
?/*
? * 將一組整數字符串轉換為整數
? * 例:"234"轉換為整數型234
? * 分析:涉及到許多問題,例如非法輸入,有正負號,是否為空字符串等等?
? * */
?import java.util.Scanner;
?public class Strtoint {
?
public static void main(String[] args) {
?
Scanner scan=new Scanner(System.in);
?
String Numstr=scan.nextLine();
?
if(Numstr.length()==0){//如果不輸入
?
System.out.println("輸入錯誤:輸入字符串為空");
?
}
?
else if(Numstr.indexOf(' ')!=0){//輸入字符串中有空格
?
System.out.println("輸入錯誤:輸入字符串中含有空格");
?
}
?
else{
?
int result_num=StrToInt(Numstr);
?
System.out.println(result_num);
?
}
?
?
}
?
public static int StrToInt(String numstr){
?
int number=0;
?
char []str=numstr.toCharArray();
?
?
?
//"以'-'開頭
?
if(str[0]=='-'){
?
?
if(numstr.length()==1){
?//"-"
?
System.out.println("輸入錯誤!");
?
}
?
else if(str[1]<='0'||str[1]>'9'){
?//"-0687"
?
System.out.println("輸入錯誤!");
?
}
?
else if(str[1]>'0'&&str[1]<='9'){
?
for(int i=2;i<numstr.length();i++){
?
if(str[i]<'0'||str[i]>'9'){
?
System.out.println("輸入錯誤!");
?
break;
?
}
?
else
?
?
{
?
number=Integer.parseInt(numstr);
?
System.out.print("數字字符串\t"+numstr+"\t"+ "轉換為整數:");
?
?
break;
?
}
?
}
?
}
?
}
?
//非法字符開頭
?
else if('9'<str[0]||str[0]<='0'){
?//"a809"或"A89"
?
System.out.println("輸入錯誤!");
?
}
?
//以'0'字符開頭
?
else if(str[0]=='0'){
?//"0154"
?
if(numstr.length()>1){
?
System.out.println("輸入錯誤!");
?
}
?
if(numstr.length()==1){
?//"0"
?
number=Integer.parseInt(numstr);
?
System.out.print("數字字符串\t"+numstr+"\t轉換為整數:");
?
}
?
}
?
//以'1-9'字符開頭
?
else if(str[0]>'0'&&str[0]<='9'){
?
for(int i=1;i<numstr.length();i++){
?
if(str[i]<'0'||str[i]>'9'){
?
System.out.println("輸入錯誤!");
?
break;
?
}
?
else
?
?
{
?
number=Integer.parseInt(numstr);
?
System.out.print("數字字符串\t"+numstr+"\t"+ "轉換為整數:");
?
?
break;
?
}
?
}
?
}
?
return number;
?
}
?}