ACM竞赛 Java编程小结
1.字符串的长度
String str = new String(" abcd"); int length = str.length();
2.数组的长度、排序
int [] a = {1,2,3,4}; int [] b = Arrays.copyOf(a,a.length);
在java中,定义数组时int [] a = new int[10];默认的初始化为全零
java中 Arrays.fill(b,10); //将数组b[]全部设置为10;
4.字符串与字符数组的转化
String str = new String("abcd"); char [] a = str.toCharArray();
5.字符串数字与数字的转化
4.1 String—>int
String str = "1234"; int i = Integer.parseInt(str); //可能会抛出异常 ,(如果报错)在 main(String[] args)后面加上throws Exception
4.2 int —>String
int i=235; String s = String.valueOf(i); //Of大写
6.从.in文件导入数据
import java.IO.*; public static void main(String [] args) throws IOException{ //会抛出异常 FileReader a = new FileReader("D-small-attempt1.in");//文件与源码在同一目录下
BufferedReader read = new BufferedReader(a);
String textLine="";
String str="";
while(( textLine=read.readLine())!=null){
str+=textLine+" ";
}
String[] numbersArray=str.split(" "); //将str按空格分开,保存成字符数组 }
7.导处数据到.txt文件
import java.IO.*; FileWriter fw = new FileWriter("output.txt");
BufferedWriter bufw = new BufferedWriter(fw);
String line = null;
for(int i=1;i<n+1;i++){
bufw.write("Case #"+i+": "+result[i]);
bufw.newLine(); //下一行
bufw.flush(); //更新
}
bufw.close();
8.保留有限位小数
import java.text.* DecimalFormat sim = new DecimalFormat("0.000000");//保留多少位小数点后面就有几位
double six = sim.format(source); //将source保留六位小数
比较简单的方法(对于输出结果保留有限位小数)
System.out.printf("%.3f",a);
9.常用数学公式(在java.lang.Math包中)
java中pi的使用 Math.PI
对数运算 double x =Math.log(double y); log(y)即 ln(y);
幂运算 double d=Math.pow(double m,double n); m^n
10.java位逻辑运算符
包括:
& 与;
| 或;
~ 非(也叫做求反);
^ 异或
java 中!a取非仅适用于Boolean型变量
java中 ~a 取反操作,
在Java中负数是用整数的补码表示的
补码就是取反+1 比如数A 那么-A就是 ~A+1 所以~A=-A-1;
所以 ~i=-5-1=-6 即~5=-6
11.java移位运算符
包括:
“>> 右移,高位补符号位”;
“>>> 无符号右移,高位补0”;
“<< 左移”;
12.java取整
向上取整:(int)Math.ceil() //只要有小数都+1
向下取整:(int)Math.floor() //不取小数
四舍五入:(int)Math.round() //四舍五入
13.字符串复制、比较、连接、分割
java
str.length()//返回字符串长度 str1.equals(str2)//java字符串比较,相等返回true str.substring(int beginIndex, int endIndex) //java字符串分割 从beginIndex开始,不包括endIndex
java判断字符串中是否包含某个字符或者字符串
String s1="abcdef"; String s2 ="abc"; int x =s1.indexOf(s2);//s2在s1中首次出现的索引,没有返回-1,s2也可以是字符
java字符串拼接 用+;
例如 String s1="abc";String s2="nba";String s3=s1+s2;则s3="abcnba";
java字符串大小写互换
str.toLowerCase();//转成小写
str.toUpperCase();//转成大写
java字符串分割
String str = "ab cd de";
String [] str_array = str.split(" ");//将字符串按空格分开存到字符串数组 String str2 = "192.168.199.1";
String [] str_array2 = str2.split("\\.");//将字符串按'.'分开存到字符串数组
java字符串反转
String s = ".........";
s = (new StringBuffer(s)).reverse().toString();
经验分享:
1、分隔符为“.”(无输出),“|”(不能得到正确结果)转义字符时,“*”,“+”时出错抛出异常,都必须在前面加必须得加"\\",如split(\\|);
2、如果用"\"作为分隔,就得写成这样:String.split("\\\\"),因为在Java中是用"\\"来表示"\"的,字符串得写成这样:String Str="a\\b\\c";
转义字符,必须得加"\\";
3、如果在一个字符串中有多个分隔符,可以用"|"作为连字符,比如:String str="Java string-split#test",可以用Str.split(" |-|#")把每个字符串分开;
14.float和double的取值范围
1.范围
float和double的范围是由指数的位数来决定的。
float的指数位有8位,而double的指数位有11位,分布如下:
float:
1bit(符号位) 8bits(指数位) 23bits(尾数位)
double:
1bit(符号位) 11bits(指数位) 52bits(尾数位)
于是,float的指数范围为-127~+128,而double的指数范围为-1023~+1024,并且指数位是按补码的形式来划分的。
其中负指数决定了浮点数所能表达的绝对值最小的非零数;而正指数决定了浮点数所能表达的绝对值最大的数,也即决定了浮点数的取值范围。
float的范围为-2^128 ~ +2^128,也即-3.40E+38 ~ +3.40E+38;double的范围为-2^1024 ~ +2^1024,也即-1.79E+308 ~ +1.79E+308。
2.精度
float和double的精度是由尾数的位数来决定的。浮点数在内存中是按科学计数法来存储的,其整数部分始终是一个隐含着的“1”,由于它是不变的,故不能对精度造成影响。
float:2^23 = 8388608,一共七位,这意味着最多能有7位有效数字,但绝对能保证的为6位,也即float的精度为6~7位有效数字;
double:2^52 = 4503599627370496,一共16位,同理,double的精度为15~16位。
但是double只能精确前16位,因此必须慎用!
for (double x1 = 0.0; x1 <= 10.0; x1 += 0.1) {
System.out.println(x1); 循环输出结果是9.99999999999998而不是10.0
14、java数据类型的最大值和最小值
相应的整数
System.out.println(Integer.MAX_VALUE);//打印最大整数:2147483647
System.out.println(Integer.MIN_VALUE);//打印最小整数:-2147483648
相应的浮点数:
System.out.println(Float.MAX_VALUE)
System.out.println(Float.MIN_VALUE)
双精度:
System.out.println(Double.MAX_VALUE)
System.out.println(Double.MIN_VALUE)
15.java释放内存
System.gc(); //java释放内存
ACM竞赛 Java编程小结的更多相关文章
- ACM之Java速成(2)
acm中Java的应用 Chapter I. Java的优缺点各种书上都有,这里只说说用Java做ACM-ICPC的特点: (1) 最明显的好处是,学会Java,可以参加Java Challenge ...
- ACM中java的使用
ACM中java的使用 转载自http://www.cnblogs.com/XBWer/archive/2012/06/24/2560532.html 这里指的java速成,只限于java语法,包括输 ...
- ACM中java的使用 (转)
ACM中java的使用 这里指的java速成,只限于java语法,包括输入输出,运算处理,字符串和高精度的处理,进制之间的转换等,能解决OJ上的一些高精度题目. 1. 输入: 格式为:Scanner ...
- 4.“写程序” 这个活动大多数情况下是个人行为。 我们听说的优秀程序员似乎都是单打独斗地完成任务。同学们在大学里也认识一些参加ACM 比赛的编程牛人, 他们写的ACM 比赛的程序是软件么? “写程序” 和 ”做软件“ 有区别么? 请采访这些学生。
ACM的题库的编程都只能算做程序,不能算软件.写程序和做软件区别还是很大的.程序是为实现特定目标或解决特定问题而用计算机语言编写的命令序列的集合.为实现预期目的而进行操作的一系列语句和指令.而软件是程 ...
- Java编程思想学习(八) 内部类
可以将一个类的定义放在另一个类的定义内部,这就是内部类. 内部类的定义是简单的,但是它的语法确实很是复杂,让人不是很好理解.下面就内部类做一个小结. 一.内部类的分类 总的来讲内部类分为普通内部类,匿 ...
- Java编程思想 (1~10)
[注:此博客旨在从<Java编程思想>这本书的目录结构上来检验自己的Java基础知识,只为笔记之用] 第一章 对象导论 1.万物皆对象2.程序就是对象的集合3.每个对象都是由其它对象所构成 ...
- Java编程的逻辑 (51) - 剖析EnumSet
本系列文章经补充和完善,已修订整理成书<Java编程的逻辑>,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接:http:/ ...
- 《Java编程思想第四版完整中文高清版.pdf》-笔记
D.2.1 安插自己的测试代码 插入下述“显式”计时代码,对程序进行评测: long start = System.currentTimeMillis(); // 要计时的运算代码放在这儿 long ...
- Java编程的逻辑 (95) - Java 8的日期和时间API
本系列文章经补充和完善,已修订整理成书<Java编程的逻辑>,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接:http: ...
随机推荐
- set集合_变长
//set可变集合 //便利初始化函数分配大小 NSMutableSet *mutableSet1 = [[NSMutableSet alloc] initWithCapacity:3]; NSMut ...
- python基础 - 文件读写
完成功能: 从指定位置读文件到控制台 #! /usr/bin/python # coding=utf- 方法一. try: f = open ('/root/python/file/001.txt', ...
- java调用phantomjs采集ajax加载生成的网页
java调用phantomjs采集ajax加载生成的网页 日前有采集需求,当我把所有的对应页面的链接都拿到手,准备开始根据链接去采集(写爬虫爬取)对应的终端页的时候,发觉用程序获取到的数据根本没有对应 ...
- 高性能Web框架Zend Framework
Zend Framework (ZF)是用 PHP 5.3及更高版本来开发 Web 程序和服务的开源框架.ZF用100% 面向对象编码实现. ZF的组件结构独一无二,每个组件几乎不依靠其他组件.这样的 ...
- wordCount程序中MapReduce工作过程分析
Map处理的是一个纯文本.Mapper处理的数据是由InputFormat分解过的数据集,其中InputFormat的作用是将数据集切割成小数据集InputSplit,每一个InputSplit将由一 ...
- "hadoop namenode -format"命令的作用和影响的文件
在hadoop部署好了之后是不能马上应用的,而是对配置的文件系统进行格式化.这里的文件系统,在物理上还未存在,或者用网络磁盘来描述更加合适:还有格式化,并不是传统意义上的磁盘清理,而是一些清除与准备工 ...
- android从应用到驱动之—camera(2)---cameraHAL的实现
本来想用这一篇博客把cameraHAL的实现和流程都给写完的.搞了半天,东西实在是太多了.这篇先写cameraHAL的基本实现框架,下一篇在具体写camerahal的流程吧. cameraHAL的实现 ...
- 海量WEB日志分析
Hadoop家族系列文章,主要介绍Hadoop家族产品,常用的项目包括Hadoop, Hive, Pig, HBase, Sqoop, Mahout, Zookeeper, Avro, Ambari, ...
- ogre, dx, opengl坐标矩阵
opengl 右手坐标系 列向量 左乘 列主序存储矩阵osg 右手坐标系 行向量 右乘 行主序存储矩阵d3d 左手坐标系 行向量 右乘 行主序存储矩阵ogre 右手坐标系 列向量 ...
- 深入学习android之AlarmManager
对应AlarmManage有一个AlarmManagerServie服务程 序,该服务程序才是正真提供闹铃服务的,它主要维护应用程序注册下来的各类闹铃并适时的设置即将触发的闹铃给闹铃设备(在系统中,l ...