算法竞赛中的Java语言学习笔记
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法竞赛中的Java语言学习笔记相关的知识,希望对你有一定的参考价值。
今年的蓝桥杯为了逃离地狱难度的c++组,不得不报了Java组。虽然说特意学一门语言看起来没啥性价比,不过我感觉如果只是针对算法竞赛,应该难度会大大减少。
写这篇博客的目的也不仅是为了方便复习,也是希望借此机会能重启一下博客的更新。
废话也不多说,直接 来 吧(振声)!
本文应该会分为两个板块,一是基础语法,二是Java里的一些比赛能用的库函数(对标stl)
基础语法部分
一,基本框架
public class Main public static void main(String[] args)
其中最外层的Main是类名,一般来说竞赛中默认规定必须为Main。而内部的main则和c++语言一样,是java语言的main函数。
同时,Java语言也有一些库函数需要声明,一般来说加在程序的开头,形式如下:
import java.util.* ;
未来会在第二部分补充常用的库函数所需要的库。
二,输入输出
java和c++一样,有很多种输入方法,其中最常用也是最推荐的方法是用Scanner来完成。首先,我们如果要使用Scanner函数,需要在程序开头添加:
import java.util.Scanner;
然后有一个固定的使用格式(声明一个Scanner类对象):
Scanner *** = new Scanner(System.in); //***为自己定义的名称
接下来,如果我们输入一个整数,就要使用 ***.nextInt(); 函数,具体形式为:
int a = ***.nextInt();
如果我们要输入一个字符串,有两种形式。一是以空格结尾的字符串,使用 ***.next();函数。第二种是会读入空格的 ***.nextLine();函数。
String a = ***.next();
String a = ***.nextLine();
输出方面,java有三种常用的输出,分别是:
System.out.printIn(*);//换行输出 System.out.print(*);//不换行输出 System.out.printf("%d",a);//c语言风格的格式化输出
其中前两个都是把括号中的内容转换为字符串然后输出到控制台,区别只是换不换行。后一个与c语言类似。
三,数据类型
1.变量与常量
java中有八种基本类型,如下:
注:包装类型出现的原因:Java是一个面向对象的语言,基本类型并不具有对象的性质,为了与其他对象“接轨”就出现了包装类型(如我们在使用集合类型Collection时就一定要使用包装类型而非基本类型),它相当于将基本类型“包装起来”,使得它具有了对象的性质,并且为其添加了属性和方法,丰富了基本类型的操作。
整数
byte
、short
、int
、long
四种基本数据类型表示整数,需要注意的是 long
类型,使用 long
修饰的变量需要在数值后面加上 L 或者 l,比如 long num = 1L;
,一般使用大写 L
,为了避免小写 l
与数值 1
混淆。
浮点数
float
和 double
类型表示浮点数,即可以表示小数部分。需要注意的是 float
类型的数值后面需要加上 F
或者 f
,否则会被当成 double
类型处理。double
类型的数值可以加上 D
或 d
,也可以不加。
char 类型
char 类型用于表示单个字符。需要将字符用单引号括起来char a = \'a\'
,char 可以和整数互相转换,如果字符 a
也可以写成char a = 97
。也可以用十六进制表示char a = \'\\u0061\'
。
boolean 类型
boolean
类型(布尔类型)用于表示真值 true
或者假值 false
,Java 中布尔值不能和整数类型或者其它类型互相转换。
常量
在声明时加上关键字final:
final double PI = 3.14;
2.String类型
java 中使用 String
类来定义一个字符串,字符串是常量。字符串缓冲区支持可变的字符串。
String
对象的初始化格式有如下两种:
String s0 = "abc"; String s1 = new String("abd");
对于字符串,有一些基本操作:
int len = s.length();//返回字符串的长度 s.equals(m);//比较字符串s与m是否相同,返回true/false s.equalsIgnoreCase(m);//比较字符串但是忽略大小写 String s1 = "World" + "!"; //+号连接两个字符串 String s2 = s0.concat(s1); //concat()方法连接两个字符串 char c = s.charAt(1);//按索引值返回字符串里的字符(索引从0开始)
附字符串常用提取方法:
三,数组
声明数组:
数据类型[ ] 数组名;
定义数组:
数组名 = new 数据类型 [ 数组长度 ];
也可以写在一起(用二维数组举例):
数据类型 [][] 数组名 = new 数据类型[行的个数][列的个数];
Java 中可以将一个数组赋值给另一个数组,如:
int [] a1 = 1,2,3; int [] a2; a2 = a1;
此时a2只是a1的一个引用,改变其中一个会改变另一个。
四、方法(函数)
以上是关于算法竞赛中的Java语言学习笔记的主要内容,如果未能解决你的问题,请参考以下文章