Scanner中nextLine()方法和next()方法的区别 之具体应用(以计算器为例)
注意: nextLine()与next()的使用区别理论部分 详情请见上篇博客———对“java学习的第三周” 的第四部分
import java.util.Scanner;
public class Xiangmu2plus{
public static void main(String [] args){
System.out.println("欢迎使用计算器");
int a=0;
while(true){ //不断循环
Xiangmu2plus k=new Xiangmu2plus();
boolean g=k.input(); //input()返回值是boolean型
if(g){ } //false or true
else
{System.out.println("谢谢使用计算器OVER");
break;}
}
}
public static double count_Data(double data1 ,double data2, String sign ){
//使用double 来计算比int计算结果更普遍,为打折做准备
double data = 0;
if(sign.equals("+"))
{data = data1 + data2;}
else if(sign.equals("-"))
{data = data1 - data2;}
else if(sign.equals("*"))
{data = data1 * data2;}
else if(sign.equals("/"))
{data = data1 / data2;}
else
{data = -99999999;}
return data;
}
public static boolean input(){
System.out.println("请输入第一个数:");
Scanner in = new Scanner(System.in);
double data1 = in.nextDouble();
System.out.println("请输入运算符:");
String sign = in.next(); //此处使用nextLine()一直运行不下去 因为接收了换行符
System.out.println("请输入第二个数:");
double data2 = in.nextDouble();
double data = count_Data(data1,data2,sign); //使用double 好计算小数
if(data == -99999999)
{ System.out.println("计算结果错误!");}
else
{ System.out.println("计算结果是"+data);}
System.out.println("是否继续Y/N:");
in.nextLine(); ~~删除线格式~~ //此处使用nextLine() 来接收了回车
String contu=in.nextLine(); //因为接收了回车 故此处可以用nextLine()
if(contu.equals("Y")||contu.equals("y"))
{
return true;
}
else {return false;}
}
}
近期好奇Java能不能随机生成数字,百度检索后发现确实可以,随机生成数字的方法类似于Scanner的使用方法
***如下代码是随机生成数字的代码 ***
import java.util.Random; //导包
public class RandomDemo{
public static void main(String[] args){
Random a=new Random(); //创建对象
for(int i=0;i<=100;i++)
{ int number=a.nextInt(10); //随机生成0-10的数,包括0 但不包括10
System.out.println(number);
double d1 = a.nextDouble(); // 生成[0,1.0]区间的小数
double d2 = a.nextDouble() * 7; // 生成[0,7.0]区间的小数
System.out.println(d1);
System.out.println(d2);
}
}
}
JAVA 截取字符串
方法一,指定字符,截取字符串
tring str = "abcd,123,123abc,fij23";
String[] strs=str.split(","+"\\s"); // \\s "\s"是空格 要多打一个反斜杠。而“\s+”则表示匹配任意多个上面的字符 当我们要裁剪连续空格时我们需要使用\\s+,否则会分割出错
System.out.println(strs[1]); //输出结果是123
System.out.println(strs);//**此处报错**,不能直接输出,出现[Ljava.lang.String问题,"@"后面表示该对象的HashCode
// 解决方法: 用Arrays.toString() 方法
举个例子:
import java.util.Arrays; //导包
public class Jie{
public static void main(String[] args){
String str1 = "abcd,123,123abc,fij23";
String[] strs=str1.split(",");
System.out.println(Arrays.toString(strs)); //输出结果是[abcd, 123, 123abc, fij23]
System.out.println(strs[1]); //输出结果是123
}
}
方法二:指定索引号,截取字符串
String str = "abcdefghijklmnopqrstuvwxyz";
str.substring(5);