1.要求是先判断字符串是不是有效的字符串,就是可以设置几个参数对字符串里面的东西进行分类,就是数字分为一类,然后‘.’一类,然后'+'和'-'号各一类。然后如果‘.’的个数不超过一个,+和-号的和不超过一个,然后这几个分类加起来的个数就是字符串的个数的话,就说明这个字符串是有效的。然后再将字符串转化为浮点数输出就行了。
2.类中的函数:
public class DoubleConverter { public boolean check(String value) { int i=0,j=0,k=0,m=0,n=0; for(i=0;i<value.length();i++) { if(value.charAt(i)>='0'&&value.charAt(i)<='9') { j++; } if(value.charAt(i)=='.') { k++; } if(value.charAt(i)=='+') { m++; } if(value.charAt(i)=='-') { n++; } } if(k>=0&&k<=1&&(m+n)>=0&&(m+n)<=1&&(j+k+m+n)==value.length()) { System.out.println("yes!"); return true; } else System.out.println("no!"); return false; } public double convert(String value) { if(check(value)==false) { return 0.0; } else return Double.valueOf(value.toString());//将字符串转化为浮点数 } }
3.主函数的代码:
import java.util.Scanner; public class doublemain { public static void main(String[] args) { // TODO Auto-generated method stub String c1=new String(); System.out.println("请输入字符串:"); Scanner sc=new Scanner(System.in); c1=sc.next();//这里注意字符串的输入使用sc.next(); DoubleConverter c2=new DoubleConverter(); System.out.println(c2.convert(c1)); } }
4.实验结果