java慕課第三季
阿新 • • 發佈:2020-12-29
java慕課第三季
1.1java異常
處理異常:
package comm.imooc.test; public class java { public static void main(String[] args) { java sc= new java(); int c = sc.test1(); System.out.println(c); } public int test1(){ int a = 10; int result = 0; try { while (a > -1){ a--; result = result + result/a; return result; } }catch (Exception e){ System.out.println("出現異常了啊!!!"); } return 100; }}
字串
字串的定義
public class HelloWorld { public static void main(String[] args) { //定義字串 String hobby = "愛慕課"; String url = "www.imooc.com"; //輸出字串 System.out.println("hobby:" + hobby ); System.out.println("url:" + url ); } }
java中字串的不變性
public class HelloWorld { public static void main(String[] args) { String s1 = "imooc"; String s2 = "imooc"; //定義字串s3,儲存“I love”和s1拼接後的內容 String s3 = "I love"+s1; // 比較字串s1和s2 // imooc為常量字串,多次出現時會被編譯器優化,只建立一個物件 System.out.println("s1和s2記憶體地址相同嗎?" + (s1 == s2)); //比較字串s1和s3 System.out.println("s1和s3記憶體地址相同嗎?" + (s1 == s3) ); String s4 = "I love " + s1; //比較字串s4和s3 // s1是變數,s4在執行時才知道具體值,所以s3和s4是不同的物件 System.out.println("s3和s4記憶體地址相同嗎?" + (s4 == s3)); } }
java中string類的常用方法
判斷檔名與郵箱名是否合法:
public class HelloWorld {
public static void main(String[] args) {
// Java檔名
String fileName = "HelloWorld.java";
// 郵箱
String email = "[email protected]";
// 判斷.java檔名是否正確:合法的檔名應該以.java結尾
/*
參考步驟:
1、獲取檔名中最後一次出現"."號的位置
2、根據"."號的位置,獲取檔案的字尾
3、判斷"."號位置及檔案字尾名
*/
//獲取檔名中最後一次出現"."號的位置
int index = fileName.lastindexOf(".");
// 獲取檔案的字尾
String prefix = fileName.substring(index+1);
// 判斷必須包含"."號,且不能出現在首位,同時字尾名為"java"
if ( index != 0 && index != -1 && prefix.equals("java") ) {
System.out.println("Java檔名正確");
} else {
System.out.println("Java檔名無效");
}
// 判斷郵箱格式是否正確:合法的郵箱名中至少要包含"@", 並且"@"是在"."之前
/*
參考步驟:
1、獲取檔名中"@"符號的位置
2、獲取郵箱中"."號的位置
3、判斷必須包含"@"符號,且"@"必須在"."之前
*/
// 獲取郵箱中"@"符號的位置
int index2 = email.indexOf("@");
// 獲取郵箱中"."號的位置
int index3 = email.indexOf('.');
// 判斷必須包含"@"符號,且"@"必須在"."之前
if (index2 != -1 && index3 > index2) {
System.out.println("郵箱格式正確");
} else {
System.out.println("郵箱格式無效");
}
}
}
統計字串中a出現的次數
package comm.imooc.test;
public class ChainTest {
public static void main(String[] args) {
// 定義一個字串
String s = "aljlkdsflkjsadjfklhasdkjlflkajdflwoiudsafhaasdasd";
// 出現次數
int num = 0;
// 迴圈遍歷每個字元,判斷是否是字元 a ,如果是,累加次數
for ( int i =0; i< s.length() ;i++ )
{
// 獲取每個字元,判斷是否是字元a
if ( s.charAt(i) == 'a' ) {
// 累加統計次數
num++;
}
}
System.out.println("字元a出現的次數:" + num);
}
}
認識java中的StringBuilder類
從執行結果中我們可以看到,程式執行時會額外建立一個物件,儲存 "helloworld"。當頻繁操作字串時,就會額外產生很多臨時變數。使用 StringBuilder 或 StringBuffer 就可以避免這個問題。至於 StringBuilder 和StringBuffer ,它們基本相似,不同之處,StringBuffer 是執行緒安全的,而 StringBuilder 則沒有實現執行緒安全功能,所以效能略高。因此一般情況下,如果需要建立一個內容可變的字串物件,應優先考慮使用 StringBuilder 類。
建立一個StringBuilder類的物件:
StringBuilder hobby=new StringBuilder("愛慕課");
從右邊開始每三個字母用逗號分隔開來:
public class HelloWorld {
public static void main(String[] args) {
// 建立一個空的StringBuilder物件
StringBuilder str = new StringBuilder();
// 追加字串
str.append("jaewkjldfxmopzdm");
// 從後往前每隔三位插入逗號
for(int i = str.length()-3;i >0;i = i -3){
str.insert(i,',');
}
// 將StringBuilder物件轉換為String物件並輸出
System.out.print(str.toString());
}
}
java中的包裝類
public class HelloWorld {
public static void main(String[] args) {
// 定義int型別變數,值為86
int score1 = 86;
// 建立Integer包裝類物件,表示變數score1的值
Integer score2=new Integer(score1);
// 將Integer包裝類轉換為double型別
double score3=score2.doubleValue();
// 將Integer包裝類轉換為float型別
float score4=score2.floatValue();
// 將Integer包裝類轉換為int型別
int score5 =score2.intValue();
System.out.println("Integer包裝類:" + score2);
System.out.println("double型別:" + score3);
System.out.println("float型別:" + score4);
System.out.println("int型別:" + score5);
}
}
裝箱與拆箱
public class HelloWorld {
public static void main(String[] args) {
// 定義double型別變數
double a = 91.5;
// 手動裝箱
Double b = new Double(a);
// 自動裝箱
Double c = a;
System.out.println("裝箱後的結果為:" + b + "和" + c);
// 定義一個Double包裝類物件,值為8
Double d = new Double(87.0);
// 手動拆箱
double e = d.doubleValue(); ;
// 自動拆箱
double f = d ;
System.out.println("拆箱後的結果為:" + e + "和" + f);
}
}
java中基本型別呃字串之間的轉換
基本型別轉換為字串有三種方法:
1.使用包裝類的toString()方法
2.使用String類的valueOf()方法
3.用一個空字串加上基本型別,得到的就是基本型別資料相對應的字串
double m = 78.5;
//將基本型別轉換為字串
String str1 = m + ""; ;
System.out.println("m 轉換為String型後與整數20的求和結果為: "+(str1+20));
String str = "180.20";
// 將字串轉換為基本型別
Double a = Double.valueOf(str) ;
System.out.println("str 轉換為double型後與整數20的求和結果為: "+(a+20));
}
基本型別與包裝類之間的區別:基本型別不能呼叫方法,二包裝類提供了在不同型別之間進行轉換的方法
使用Date和SimpleDateFormat類表示時間
在程式開發中,經常需要處理日期和時間的相關資料,此時我們可以用java.utl包中的Date類。這個類最主要的作用就是獲取當前的時間。
使用Date類的預設無參的構造方法創建出的物件就代表的是當前的時間。
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class HelloWorld {
public static void main(String[] args) throws ParseException {
// 使用format()方法將日期轉換為指定格式的文字
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy年MM月dd日 HH時mm分ss秒");
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy/MM/dd HH:mm");
SimpleDateFormat sdf3 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// 建立Date物件,表示當前時間
Date now = new Date();
// 呼叫format()方法,將日期轉換為字串並輸出
System.out.println( sdf1.format(now) );
System.out.println(sdf2.format(now));
System.out.println(sdf3.format(now));
// 使用parse()方法將文字轉換為日期
String d = "2014-6-1 21:05:36";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// 呼叫parse()方法,將字串轉換為日期
Date date = sdf.parse(d);
System.out.println(date);
}
}
宣告一個記憶體為10的陣列: int[] sc = new int[10];
隨機生成十以內的隨機數: sc = (int)(Math.random()*10);
用foreach迴圈列印陣列:
for(num : sc){system.out.println(num)}
```
//通過迴圈給陣列賦值
for (int i = 0; i < nums.length; i++) {
// 產生10以內的隨機數
int x = (int)(Math.random()*10);
nums[i] = x;// 為元素賦值
}
```
集合框架
集合框架概述