[转载] 将一个整数型字符串转换为一个整数

本文介绍了一种Java方法,用于将整数形式的字符串安全地转换为整数类型,同时处理各种边界情况,如空字符串、前导空格、非法字符及正负号等。

参考链接: 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;

 

}

 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值