要求如图
代码如下
import java.util.Scanner;
public class Demo4 {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
System.out.print("请输入字符串:");
String param=scanner.next();
String result=MyStoi(param);
System.out.println(result);
}
/**判断字符串是否为数字*/
public static String MyStoi(String param){
int num=Integer.MAX_VALUE;
//是否为负数
Boolean isNegative=false;
//将字符串转换为数组
for (int i = 0; i < param.length(); i++) {
//ascii码转换
int ascii=param.charAt(i)-0;
//负号的ascii码为45
if(ascii==45&&i==0){
isNegative=true;
}
//数字0-9的ascii码范围为48~57;
if(ascii>=48&&ascii<=57){
//判断之前的字符是否已经存在数字
if (num!=Integer.MAX_VALUE) num=num*10+ascii-48;
else num=ascii-48;
}
}
//负数判断
if(isNegative&&num!=Integer.MAX_VALUE) num=num*-1;
//返回
if (num == Integer.MAX_VALUE) return "错误";
return String.valueOf(num);
}
}