今天用java写了一道程序,发现与c++的写法完全不同,废了好长时间才写出一道特别简单的题目。
一
1.基本数据类型,int,long,double,char,String,StringBuffer
2.包装类:Integer,Double,Character,Long
基本数据类型和包装类之间可以相互装换,到时基本数据类型之间却不
可以相互转换。
int和long和double之间可以通过强制转换进行转换类型。
int 和char可以强转。
除了Character包装类,Integer,Long,Double都存在
包装类.parseXXX(string)的方法吧字符串转换
String.valueOf( int )可以把整形转换为字符串
可以通过string.toCharArray()的方法吧string类型的装换为字符数组
数组.toString(),可以把数组转换为字符串。
可以通过string.charAt(index)的方法转换为char类型
可以通过stringBuffer.setCharAt(index, ch)和
stringBuffer.charAt(index)获取和修改stringBuffer类型的变量
compareTo()方法可以用来比较两个字符串的内容是否相等。
equals也可以比较两个字符串是否相等,但是,如过两个内容相等
地址不同,用equals也会认为不同。
string.split()返回值是一个字符串数组
二
Java中的Scanner类中的方法next()与nextLine()都是吸取输入控制台输入的字符
①next()方法不会吸取字符前和后的空格/Tab,只吸取字符,开始吸取字符(字符前后不算)
直到遇到空格/Tab/回车截取吸取
②nextLine()吸取字符前后的空格/Tab键,也会吸收回车符
读取一个字符的技巧.next().charAt(0);
三
对于基本数据类型的的排序直接调用Arrays中的sort方法进行排序即可。
但是对于对象数组进行sort排序,需要用到comparable或者comparator接口。
comparable可以认为是一个内部比较器,实现comparable的对象数组需要
重写一下comparable中的compareTo方法。
public class GeRenInfo implements Comparable<GeRenInfo>{
private Integer sxny;//所属年月
@Override
public String toString() {
return "sxny=" + sxny ;
}
public int getSxny() {
return sxny;
}
public void setSxny(int sxny) {
this.sxny = sxny;
}
@Override
public int compareTo(GeRenInfo o) {
int sxny01=this.sxny;
int sxny02=o.sxny;
int i=0;
if(sxny01> sxny02){
i=1;
}else if(sxny01<sxny02){
i=-1;
}
return i;
}
}
comparator可以认为是一个外部比较器,需要定义一个继承comparator
接口的类,并且重写 一下方法compare,在是用sort排序时,调用一下即可。
import java.lang.reflect.Array;
import java.util.*;
public class Main {
public static void main(String[] args) {
Long[] a=new Long[100010];
Arrays.fill(a, (long)0);
Scanner scan=new Scanner(System.in);
int n=scan.nextInt();
for(int i=0;i<n;i++)
{
a[i]=scan.nextLong();
}
Comparator cmp=new CMP();
Arrays.sort(a,0,n,cmp);
for(int i=0;i<n;i++)
System.out.print(a[i]+" ");
}
}
class CMP implements Comparator<Object>
{
public int compare(Object o1, Object o2) {
Long a=(long)o1;
Long b=(Long)o2;
if(a<b)
return -1;
else
return 1;
}
}
集合的sort排序
对于常用的vector,list等也可以利用sort进行排序:
(1)list中的对象已经实现了Comparable接口,说明list中的那种对象是
可比较类型,支持自己和自己比较的,那么可以直接调用
Collections.sort(list);进行排序。例如常见的Integer,Float,Double类型等。
(2)如果list中的类没有实现Comparable接口,则需要借助外比较器,
实现 Comparator接口的类的对象
四
多组样例输入输出
static Scanner in = new Scanner(System.in);
while(in.hasNextInt())
或者是
while(in.hasNext())