通过java实现输入系数求一元二次方程根,学习Scanner()、split()和Substring()函数
2018-04-06 11:52
846 查看
通过java实现输入系数求一元二次方程根,学习Scanner()、split()和Substring()函数
学习目的:1、针对scan未关闭问题处理
2、参数输入,可以用scan直接获取,也可以用split()分割
3、Substring()获取子字符串学习
1、用try{}catch{} finally{}解决函数未关闭问题
问题提示,如下(有时未必会影响最后输出结果):解决代码:
try { ...... //省略操作代码 } catch(Exception e){ //输出错误提示信息 System.out.println(e); } finally { //不管什么情况都会执行,都会执行关闭scan scan.close(); }
加入try{}catch{} finally{} 后,提示显示,当然一些程序也可以直接在末尾加入scan.close()语句关闭,根据代码需要判断!
2、二次方程参数获取
(1)直接用Scanner()输入获取,然后用Double.parseDouble(),将获取参数转换为double型:System.out.println("请输入:a、b、c:");//输出提示信息 String a1=scan.next(); //获取第一个输入元素并赋值给a1 String b1=scan.next(); //获取第一个输入元素并赋值给b1 String c1=scan.next(); //获取第一个输入元素并赋值给c1
(2)用正则表达式,并用split()分割字符串
System.out.println("请输入:a=?&b=?&c=?");//输出提示信息 String str = scan.next();//记录键盘录入的字符串 String regex = "[&]";//正则表达式 String[] arr = str.split(regex);//按正则切开 for(int i=0;i<arr.length;i++) {//遍历输出处理后的字符串数组 System.out.println(arr[i]); }
该部分输出如下:a=1 b=6 c=4,同样用Double.parseDouble(),将获取参数转换为double型:
3、Substring()函数获取子字符串
(1)接下来我们要提取输出的1、6、4元素,由上面输出我们知道有arr[0]元素为a=1,arr[1]元素为b=6,arr[2]元素为c=4,我们由以下可实现得到a1=1,b1=6,c1=4.String a1 = arr[0].substring(2);//取出字符串数组中第一个元素从"="开始到结尾的字符串,substring(int beginIndex) String b1 = arr[1].substring(2);//取出字符串数组中第二个元素从"="开始到结尾的字符串 String c1 = arr[2].substring(2);//取出字符串数组中第三个元素从"="开始到结尾的字符串
(2)substring()函数简介
substring()方法可以对字符串进行截取。
1> substring(int beginIndex)
该方法返回从指定的索引位置开始截取直到该字符串结尾的子串。
如:
String str = “Hello World”; //定义字符串str
String substr = str.substring(3); //获取截取字符串
输出为 to World
2> substring(int beginIndex,endIndex)
该方法返回的是从字符串某一索引位置开始截取至某一索引位置结束的子串
用上一个例子如:
String str = “Hello World”; //定义字符串str
String substr = str.substring(0,3); //获取截取字符串
输出为 Hel
所以由arr[0]值为a=1,故arr[0].substring(2)就能得到1,别的同理分析。
4 一元二次方程求解根代码
此处考虑了简单的输入情况,全面分析代码可参看下面网盘链接:Scanner scan = new Scanner(System.in);//键盘录入 try { System.out.println("请输入:a、b、c:");//输出提示信息 String a1=scan.next(); String b1=scan.next(); String c1=scan.next(); double a = Double.parseDouble(a1);//就数字字符串转换为double类型 double b = Double.parseDouble(b1); double c = Double.parseDouble(c1); System.out.println(a);//输出转换后的数据 System.out.println(b); System.out.println(c); if((b*b-4*a*c)<0) {//判断(b*b-4*a*c)<0是否成立 System.out.println("方程无实根");//控制台输出 }else if((b*b-4*a*c)==0){//判断(b*b-4*a*c)==0是否成立 System.out.println("方程有一个实根"); double x1 = ((-b)/(2*a));//计算根并赋值给变量x1 System.out.println("根为:"+x1);//控制台输出"根为:"+x1 }else { System.out.println("方程有两个实根"); double x2 = ((-b-Math.sqrt(b*b-4*a*c))/(2*a));//计算根并赋值给变量x2 double x3 = ((-b+Math.sqrt(b*b-4*a*c))/(2*a));//计算根并赋值给变量x3 System.out.println("根为:"+x2+"和"+x3);//控制台输出结果 } } catch(Exception e){ //输出错误提示信息 System.out.println(e); } finally { //不管什么情况都会执行,都会执行关闭scan scan.close(); } }
结果:
代码分析:
链接:https://pan.baidu.com/s/1rv97mmoy2YzNqZN7NuEJYg 密码:lq72
相关文章推荐
- C++通过自定义函数求一元二次方程的根
- 输入系数求一元二次方程根;输入数字对应打开windows的记事本、画图、计算器;输出当前一个月每天是星期几
- 求一元二次方程ax2+bx+c=0的根。其中系数a(a≠0)、b、c的值由键盘输入
- c语言:求一元二次方程的跟,系数a,b,c由键盘输入(要求考虑所有情况)
- c语言:求一元二次方程的跟,系数a,b,c由键盘输入(要求考虑所有情况)
- 在页面中,我们经常看到,一个button按钮,如果属标点击,就会触发一个窗口的显示,如果二次点击并可以隐藏,那么如何通过JAVA配合html来实现这一功能呢?
- 参考选择屏幕(控制选择屏幕两个屏幕,单值输入……通过函数实现单值输入)
- java通过interface实现C中的函数指针
- java学习之路——小例子(实现输入年份,输出该年份的具体天数信息)
- 39.输入任意的a,b,c求一元二次方程ax*x+bx+c=0的根
- 练习2: 通过交换函数的实现,学习指针的用法。
- 编程:用java 语言实现,输入一个数,就相应地输出的几维数组!||用1、2、2、3、4、5这六个数字,用java写一个函数,打印出所有不同的排列,要求:"4"不能在第三位,"3"与"5"不能相连
- java代理的学习,通过类实现接口来实现代理。proxy来创建动态类,和InvocationHandler接口的实现,和工作原理。
- 1、通过函数实现打印*号组成的直角三角形,函数要求传入行数即可。在main 方法中,通过用户输入得到行数,然后调用函数做打印。 三角形样式: * ** *** **** ***** ******
- 用类方法求解一元二次实系数方程
- 一元多项式的乘法与加法运算【Java实现--通过单项链表实现队列】
- 习题:输入abc的值求一元二次方程的解
- Java--第13周实验--封装一个求一元二次方程根的类SquareEquation,要求考虑解方程的异常,再编写一个窗口类EquationFrame
- java中接收输入的函数java.util.Scanner的使用
- JNI学习--通过Java应用调用C语言的函数打印hello,world