Java学習ノート08。

8106 ワード

一般API
一、
 基本タイプのデータを便利にするために、Javaは各基本タイプのデータに対応するクラスタイプを与えている。
基本タイプに対応するクラスタイプ:
byte-->Byte
ショートショット
int-->Integer
long-->Long
float->Float
Double->Double
char->Charcter
bolean->Boolean
1、Integerタイプ
フィールド:
最大値:MAX_VALE最小値:MIN_VALE
構造方法:
Integer(int value)
Integer(Stering s)  ここの文字列は数字で構成されています。
各種メンバー方法:
バイナリに変換:toBinaryString(int i)を8進に変換:toOctalString(int i)  16進に変換:toHexString(int i) 
	public static void main(String[] args) {
		//    
		int a = 1024;
		//    
		System.out.println(Integer.toBinaryString(a));
		//    
		System.out.println(Integer.toOctalString(a));
		//     
		System.out.println(Integer.toHexString(a));
		
	}
intタイプとStringタイプの相互変換:
  int-->String方式1:String s=100+“”;方式2:  String.valueOf(int)方式3:Integer.toString(100);     Stering-->int方式1:  Integer.parseInt(String)方法2:
Integerオブジェクトを作成し、文字列に入力し、intValue()メソッドを利用します。
2、Charracter
 メンバー方法 public static book isUpperCase(char ch)は大文字かどうか判断します。 public static book isLowerCase(char ch)は小文字かどうか判断します。 public static book isDigit(char ch)は数字かどうかを判断します。 public static char toUpperCase(char ch)は大文字になります。 public static char towerCase(char ch)は小文字に変換します。
事例:キーボードは文字列中の大文字、小文字、数字文字の出現回数を入力します。
	public static void main(String[] args) {
		//       
		Scanner sc = new Scanner(System.in);
		String str = sc.nextLine();
		//   ---->    
		char[] chs = str.toCharArray();
		//        
		int Uppercase = 0 ;
		int Lowercase = 0;
		int Number = 0;
		for (int i = 0; i < chs.length; i++) {
			if(Character.isUpperCase(chs[i])){
				Uppercase++;
			}
			if(Character.isLowerCase(chs[i])){
				Lowercase++;
			}
			if(Character.isDigit(chs[i])){
				Number++;
			}
		}
		System.out.println("      :"+Uppercase);
		System.out.println("      :"+Lowercase);
		System.out.println("    "+Number);
	}
3、Math
  メンバーの方法:  public static int abs(int a)は絶対値を取ります。  public static double ceil(double a)を上に向けて整理します。  public static double flor(double a)を下に整えます。  public static int max(int a,int b)は最大値をとります。  public static double pow(double a、double b) aのb乗  public static double Random()乱数を生成する。
  public static int round(float a)  四捨五入
事例:数字当てのゲームを書きます。
	public static void main(String[] args) {
				//    1-100    
		int random = (int) (Math.random()*100+1);
				//      
		Scanner sc = new Scanner(System.in);
		
		while(true){
			System.out.println("please input a number");
			
			int a = sc.nextInt();
			if(arandom){
				System.out.println("big");
			}
			if(a==random){
				System.out.println("you are right");
				 break;
			}
			
		}
		
	}
4、Object類
Object類:すべての種類のルートです。すべてのクラスは直接または間接的にこのクラスから継承されます。
   学生オブジェクトを作成して学生オブジェクトのアドレス値を印刷します。   同じオブジェクトのハッシュ値は同じに違いない。   ハッシュ値が同じオブジェクトのアドレス値は必ずしも同じではない。
toString()メソッドの書き換え:
理由:デフォルトでは、オブジェクトの文字列表示を印刷していますが、あまり意味がありません。
パッケージ名…クラス名+@+は、オブジェクトのハッシュコード値の16進数です。
自動書き換えショートカット:Shift+alt+s->override
書き換えたら、オブジェクトの内容を文字列形式に変換できます。
equals()メソッドの書き換え:
デフォルトでは、比較はアドレス値です。意味がない
この生成の方法は、オブジェクトのメンバー変数値が同じかどうかを比較することにある。
==equals()との違い:
A:==の作用a:基本タイプデータ値b:参照タイプアドレス値B:equals()は参照タイプだけ比較できます。デフォルトの比較アドレス値。書き直したら、書き直した規則に従います。
Scanner:キーボードからデータを取得するのを手伝ってくれます。
同一のScannerオブジェクトである場合、データの入力順序の問題:
先にint Stringをすると問題が発生します。
解決方法:
A:すべてのデータをStringで受信して、将来どんなタイプがほしいのか、Stringをなぜタイプに変換しますか?
B:新しいオブジェクトを作成します。
Scanner sc=new Scanner(System.in);
     Scanner sc 2=new Scanner(System.in)
Random:
乱数を生成するクラスです。シードと関連しています。
構造方法:
   Random():シードが指定されておらず、デフォルトのシードを採用しています。  Random(long seed):シードを指定できます。同じシードで発生する乱数は同じです。
  メンバーの方法:  public int nextInt():int範囲内のデータを返します。  public int nextInt(int n):[0,n]間のデータを返します。
   1-100間の乱数を取得します。  new Random().nextInt(100)+1 ;
System:
 メンバーの方法:  public static void exit:現在実行中のJava仮想マシンを終了します。慣例によれば、非0の状態コードは異常終了を表す。    public static long current TimeMillis():現在時間のミリ秒値を取得します。  public static void arraycopy(Object src、int srpos、Object dest、int destPos、int length):複製配列
Date:
  Date:クラスDateは特定の瞬間を表し、ミリ秒まで正確です。       構造方法:  Date():デフォルトで取得したのは現在の日付時間です。  Date(long date):現在の日付を指定のミリ秒値で設定します。     メンバーの方法:  public long getTime():日付オブジェクトのミリ秒値を取得する  public void setTime:日付オブジェクトのミリ秒値を設定します。
DateFormat
フォーマット:Date-->String
解析:Sting-->Date
 構造: SimpleDateFormat()日付オブジェクトをデフォルトのモードで書式設定します。 SimpleDateFormat:与えられたパターンで日付オブジェクトを書式設定します。 たとえば: yyyy年MM月dd日HH:mm:ss yyyy-M-dd HH:mm:ss   メンバーの方法: public final String format(Date date)は、Dateを日付/時間文字列にフォーマットします。 public Date parse(String source)throws PaseExceptionは、与えられた文字列の先頭からテキストを解析して、日付オブジェクトを生成します。
例:日付ツールの種類を書くDateUtils
 必要:  1.外部からこのタイプのオブジェクトを作成できないようにする  2.設定の方法は直接にクラス名で呼び出すことができます。  3.yy年MM月dd日を取得することができます。  4.HH:mm:ssが取得できます。  5.yy-M-dd HH:mm:ssが取得できます。
public class DateUtils {
	private DateUtils(){}
	//    yy MM dd 
	public static String getDate(){
		Date d = new Date();
		SimpleDateFormat sdf = new SimpleDateFormat("yy MM dd ");
		String dateStr = sdf.format(d);
		return dateStr;
	}
	public static String getTmie(){
		Date d = new Date();
		SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
		String dateStr = sdf.format(d);
		return dateStr;
	}
	public static String getDateTime(){
		Date d = new Date();
		SimpleDateFormat sdf = new SimpleDateFormat("yy-MM-dd HH:mm:ss");
		String dateStr = sdf.format(d);
		return dateStr;
	}

}
Calender:
  Calendar:特定の瞬間とYEA、MONTH、DAY_などのセットです。OF_MONTH、HOURなどのカレンダーフィールド間の変換はいくつかの方法を提供しています。     Calendar(カレンダー類)--取得年、取得月、取得日、取得時、取得分、取得秒。  public int get(int field):所定のカレンダーフィールドの値を返します。
メンバーの方法:
  public void add(int field,int amount):amountによるfieldの値の変更  public void set(int year,int mont,int date):現在のカレンダーの年月日を設定します。
例:キーボード入力年は、任意の年の2月には何日間ですか?
public class CalendarDemo {
	public static void main(String[] args) {
		//      
		Scanner sc = new Scanner(System.in);
		int yyyy = sc.nextInt();
		Calendar c = Calendar.getInstance();
		//       3 1 
		c.set(yyyy, 2, 1);
		//   1,         
		c.add(Calendar.DATE,-1);
		System.out.println("     "+c.get(Calendar.DATE)+" ");
		
		
	}
}
正規表現:
正規表現:一定の規則に合致する文字列
ルール文字はjava.util.regex PatternクラスでA:文字x(例:a,1)\反斜線文字B:文字類[a b c]a,bまたはc(簡単なクラス)[^abc]の任意の文字を除いて、a、bまたはc(否定) [a-z A-Z]aからzまたはAからZまで、両端の文字を含む(範囲) [0-9]0-9文字C:事前定義文字類.任意の文字\d数字:[0-9] \w単語の文字:[a-zA-Z_]0-9]D:Gredy数量詞 XですかXは一度もないです。 X*X,0回以上 X+X,一回または何回か X{n}X,ちょうどn回です。 X{n,}X,少なくともn回 X{n,m}Xは、少なくともn回であるが、m回を超えない。 
 判断機能:  public book matches(String regex):与えられた正規表現にマッチするかどうかを通知します。
分割機能  public String[]split(String regex):与えられた正規表現のマッチングに基づいてこの文字列を分割します。
置換機能   public String replace All(String regex,String replaccement):regexに該当するものをreplaccementに置き換える。
例:QQ番号を検証する
要求:
1、5-15桁の数字が必要です。
2、0は始められません
3、各文字は数字でなければなりません。
	public static void main(String[] args) {

		System.out.println("         qq  ");
		Scanner sc = new Scanner(System.in);
		String qq = sc.nextLine();
		
		         qq  
		System.out.println(isCheck(qq));
	}

	private static boolean isCheck(String qq) {
		//      qq        ,             qq             
		String reg = "[1-9][0-9]{4,14}";
		//           qq  
		boolean flag = qq.matches(reg);
		return flag;
	}
文字列を分割:  下記の文字列があります。「91 27 46 38 50」
   コードを書いて最終出力を実現してください。結果は27 38 46 50 91です。
		public static void main(String[] args) {
		//     
		String Str = "91 27 46 38 50";
		String reg = " ";
		String[] Strs = Str.split(reg);
		int[] arr = new int[Strs.length];
		for (int i = 0; i < Strs.length; i++) {
			arr[i] = Integer.parseInt(Strs[i]);			
			
		}
		Arrays.sort(arr);
		StringBuffer sb = new StringBuffer();
		for (int i = 0; i < arr.length; i++) {
			sb.append(arr[i]+" ");
		}
		System.out.println(sb.toString());
		
	}