今天用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())