1.保留小数点几位,并且四舍五入。。
double num=1.43239; DecimalFormat df = new DecimalFormat("#.####"); System.out.println(df.format(num));
输出1.4324
但是如果num中不是小数或像1.0,1,1.00000都不会保留小数点后几位只会输出1。
但是如果题目要求是要补全0 的时候就比较行营见拙了。
与是就可以用0来占位
double num=0.234; DecimalFormat df = new DecimalFormat("#0.0000"); df.format(num);
一般的形式都是#0.0000。小数点前面的0是为了防止像上述例子的0.234这样的如果用#.0000,这样是不行的,会变成.234不过大于1的话就没事了,但是大家还是尽量用#0.0000。
0和#的作用:
#
:表示可选的数字。如果数字存在,则显示该数字;如果数字不存在,则不显示。0
:表示必须的数字。如果数字存在,则显示该数字;如果数字不存在,则显示0。
2.字符处理。。
简单处理
当题目的输入是一个字符串的时候,然后中间夹杂着一些数字,那么如何提取数字需要用到一些技巧了。
如果题目的读取只需要读取单个的数字那是比较简单的,
使用String s=sc.next();
然后用s.charAt();或者s.toCharArray()转换成数组用索引就可以读出来
然后再转成int 的时候注意一下-48就行
例如:”1“转1 int a="1"-48 为什么要减去48 自己去查ASCII码,
现有输入:2x^2-3 由于题目要用到其中数字,你要把它取出来。求方法。
其实你简单想想用charAt其实就可以取出来例子中的2,3,但是你有没有想到万一其中的数字是两位?三位?这样你去出来不是还要处理过那不是未尝麻烦,加上我们薄弱的编程基础,想想就头疼。
pattern和matcher类
所以贴心的Java当然会给我们准备好类啦;;
String input = sc.next(); Pattern pattern = Pattern.compile("\\d+"); // 匹配一个或多个数字 Matcher matcher = pattern.matcher(input); int [] a=new int [10]; int num1=0; while (matcher.find()) { a[num1]=Integer.parseInt(matcher.group()); num1++; }
我们使用了Java的正则表达式库来匹配一个或多个数字。在上面的代码中,我们使用了Pattern
类和Matcher
类来定义正则表达式和执行匹配操作
其实这两个类中的东西挺多的有些也挺好用,但是一般比赛的时候也用不到可以自己查出来参考一下。
在这里使用了一个强制类型转换,Integer.parseInt()将matcher.group()返回的String类型转换成int类型
再此科普一下正则表达式:
正则表达式(Regular Expression,简称regex)是一种用于匹配字符串中特定模式的模式匹配工具。通过使用正则表达式,可以方便地查找、匹配或替换文本中的模式。
正则表达式由一系列字符组成,其中一些字符具有特殊含义,如 .
、*
、?
、|
、[ ]
、^
、$
等。这些特殊字符用于定义要匹配的模式。
下面是一些正则表达式的示例:
- 匹配所有数字:
\d+
- 匹配所有字母:
[a-zA-Z]+
- 匹配所有空白字符:
\s+
- 匹配以特定字符开头的字符串:
^a
- 匹配以特定字符结尾的字符串:
a$
- 匹配包含特定字符的字符串:
a.b
- 匹配不包含特定字符的字符串:
[^a]
- 匹配重复的字符:
a{3}
(匹配三个连续的a) - 匹配任意的单个字符:
.
- 匹配可选的字符:
a?
(匹配0个或1个a)
这只是正则表达式的一些基本示例,实际上正则表达式的功能非常强大,可以用来处理复杂的文本模式匹配和替换操作。
其实就可以简单理解成字符串了,一般不出太邪乎的东西这个都可以把数字取出来的
3.Java中的math库的运用:
Math库中其实有很多的方法是很有用也是经常用到的方法
再次例举一下:
Math.abs();
这个是绝对值,里面支持int ,long,float,double类
Math.max()
Math.min()
显而易见是曲最大值和最小值的,支持int ,long,float,double类
Math.random()
返回一个伪随机数,其值在0.0(包括)和1.0(不包括)之间。
Math.round(a)
将a四舍五入为最接近的整数。可以float和double-->long
Math.sqrt(double a)
平方根
Math.pow(double a, double b)
计算a的b次幂
除此之外,还有很多有关三角函数的,那些一般很少用到;;
后续还有再补!!!