日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

《JAVA程序设计》_第七周学习总结

發布時間:2023/11/29 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 《JAVA程序设计》_第七周学习总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、學習內容

1.String類——8,1知識

  • Java專門提供了用來處理字符序列的String類。String類在java.lang包中,由于java.lang包中的類被默認引入,因此程序可以直接使用String類。
  • 需要注意的是Java把String類聲明為final類,因此用戶不能擴展String類,即String類不可以有子類。
  • 構造String對象
    • 常量對象:字符串常量對象是用雙引號括起的字符序列,例如:"你好"、"12.97"、"boy"等。Java把用戶程序中的String常量放入常量池。因為String常量是對象,所以也有自己的引用和實體。
    • String對象:可以使用String類聲明對象并創建對象,例如:
    String s = new String("we are students"); String t = new String("we are students");
    • 對象變量s中存放著引用,表明自己的實體的位置,即new 運算符首先分配內存空間并在內存空間中放入字符序列,然后計算出引用。
    • 另外,用戶無法輸出String對象的引用:Syste.out.println(s);。輸出的是對象的實體,即字符序列we are students。
    • 也可以用一個已創建的String對象創建另一個String對象,如:
    String tom = new String(s);
  • String類還有兩個較常用的構造方法。
    • String (char a[])用一個字符數組a創建一個String對象,如:
    char a[] = {'J','a','v','a'}; String s = new String(a);

    過程相當于

    String s = new String("Java");
    • String(char a[],int startIndex,int count)
      提取字符數組a中的一部分字符創建一個String對象,參數startIndex和count分別指定在a中提取字符的起始位置和從該位置開始截取的字符個數,如:
    ?char a[] = {'零','壹','貳','叁','肆','伍','陸','柒','捌','玖'};String s = new String(a,2,4);

    相當于

    ?String s = new String("貳叁肆伍");

正則表達式

  • 正則表達式是一個String對象的字符序列,該字符序列中含有具有特殊意義字符,這些特殊字符稱做正則表達式中的元字符。比如,"\dcat"中的\d就是有特殊意義的元字符,代表0到9中的任何一個,"0cat","1cat","2cat",…,"9cat"都是和正則表達式"\dcat"匹配的字符序列。
  • 在正則表達式中可以用方括號括起若干個字符來表示一個元字符,該元字符代表方括號中的任何一個字符。例如String regex = "[159]ABC",那么"1ABC"、"5ABC"和"9ABC"都是和正則表達式regex匹配的字符序列。例如,[abc]:代表a、b、c中的任何一個;[^abc]:代表除了a、b、c以外的任何字符;[a-zA-Z]:代表英文字母(包括大寫和小寫)中的任何一個。
  • String對象調用public String replaceAll(String regex,String replacement)方法返回一個新的String對象,這個新的String對象的字符序列是把當前String對象的字符序列中所有和參數regex匹配的子字符序列,用參數replacement的字符序列替換后得到字符序列。
  • public String[] split(String regex)使用參數指定的正則表達式regex做為分隔標記分解出其中的單詞,并將分解出的單詞存放在字符串數組中。例如,對于字符串str String str = "1949年10月1日是中華人民共和國成立的日子";如果準備分解出全部由數字字符組成的單詞,就必須用非數字字符串做為分隔標記,因此,可以使用正則表達式:String regex="\\D+";做為分隔標記分解出str中的單詞:String digitWord[]=str.split(regex);那么,digitWord[0]、digitWord[1]和digitWord[2]就分別是“1949”、“10”和“1”。

    2.StringTokenizer類 ——8.2知識

  • StringTokenizer類在java.util包中,有兩個常用的構造方法:
    • StringTokenizer(String s):為String對象s構造一個分析器。使用默認的分隔標記,即空格符、換行符、回車符、Tab符、進紙符做分隔標記。
    • StringTokenizer(String s, String delim為String對象s構造一個分析器。參數delim的字符序列中的字符的任意排列被作為分隔標記。
  • StringTokenizer對象稱作一個字符串分析器可以使用下列方法:
    • nextToken():逐個獲取字符串中的語言符號(單詞),字符串分析器中的負責計數的變量的值就自動減一 。
    • hasMoreTokens():只要字符串中還有語言符號,即計數變量的值大于0,該方法就返回true,否則返回false。
    • countTokens():得到分析器中計數變量的值

3.Scanner類——8.3知識

  • scanner將空格做為分隔標記來解析字符序列中的單詞,具體解析操作:
    • scanner調用next()方法依次返回NBA中的單詞,如果NBA最后一個單詞已被next()方法返回,scanner調用hasNext()將返回false,否則返回true。

    • 對于被解析的字符序列中的數字型的單詞,比如618,168.98等,scanner可以用nextInt()或nextDouble()方法來代替next()方法,即scanner可以調用nextInt()或nextDouble()方法將數字型單詞轉化為int或double數據返回。

    • 如果單詞不是數字型單詞,scanner調用nextInt()或nextDouble()方法將發生InputMismatchException異常,在處理異常時可以調用next()方法返回該非數字化單詞。

  • Scanner對象可以調用 useDelimiter(正則表達式); 方法將一個正則表達式作為分隔標記,即和正則表達式匹配的字符串都是分隔標記。

4.StringBuffer類——8.4知識

  • StringBuffer append(String s):將String對象s的字符序列追加到當前StringBuffer對象的字符序列中,并返回當前StringBuffer對象的引用
  • StringBuffer append(int n):將int型數據n轉化為String對象,再把該String對象的字符序列追加到當前StringBuffer對象的字符序列中,并返回當前StringBuffer對象的引用
  • StringBuffer append(Object o):將一個Object對象o的字符序列表示追加到當前String- Buffer對象的字符序列中,并返回當前StringBuffer對象的引用
    類似的方法還有:
  • StringBuffer append(long n),StringBuffer append(boolean n),
  • StringBuffer append(float n),StringBuffer append(double n),
  • StringBuffer append(char n)
  • public chat charAt(int n ):得到參數n指定的置上的單個字符
  • public void setCharAt(int n ,char ch):將當前StringBuffer對象實體中的字符串位置n處的字符用參數ch指定的字符替換
  • StringBuffer insert(int index, String str) :將參數str指定的字符串插入到參數index指定的位置
  • public StringBuffer reverse() :將該對象實體中的字符翻轉
  • StringBuffer delete(int startIndex, int endIndex):從當前StringBuffer對象實體中的字符串中刪除一個子字符串
  • 其相關方法:deleteCharAt(int index) 刪除當前StringBuffer對象實體的字符串中index位置處的一個字符。
  • StringBuffer replace(int startIndex,int endIndex,String str):將當前StringBuffer對象實體中的字符串的一個子字符串用參數str指定的字符串替換

5.Date與Calendar類——8.5知識

(1) Date類

  • Date類在java.util包中.
  • Date類的構造方法之一:
  • Date()使用Date類的無參數構造方法創建的對象可以獲取本地當前時間。
  • Date類的構造方法之二:
    • Date(long time)使用long型參數創建指定的時間
  • System類的靜態方法 public long currentTimeMillis() 獲取系統當前時間。

(2)Calendar類

  • Calendar類在java.util包中。
  • 使用Calendar類的static方法 getInstance()可以初始化一個日歷對象,如:Calendar calendar= Calendar.getInstance();
  • calendar對象可以調用方法:
public final void set(int year,int month,int date) public final void set(int year,int month,int date,int hour,int minute) public final void set(int year,int month, int date, int hour, int minute,int second) //其作用是將日歷翻到任何一個時間

6.日期的格式化——8.6知識

可以直接使用String類調用format方法對日期進行格式化。

8.6.1 format方法

  • Formatter類的format方法:
    format(格式化模式, 日期列表)
    按著“格式化模式”返回“日期列表”中所列各個日期中所含數據(年,月,日,小時等數據)的字符串表示。

    Java已經將format方法做為了String類的靜態方法,因此,程序可以直接使用String類調用format方法對日期進行格式化。

  • 1.格式化模式
    format方法中的“格式化模式”是一個用雙引號括起的字符序列(字符串),該字符序列中的字符由時間格式符和普通字符所構成。例如:"日期:%ty-%tm-%td"
    String s = String.format("%tY年%tm月%td日",new Date(),new Date(),new Date()); 那么s就是"2011年02月10日"
  • 2.日期列表
    • format方法中的“日期列表”可以是用逗號分隔的Calendar對象或Date對象。
    • format方法默認按從左到右的順序使用“格式化模式”中的格式符來格式“日期列表”中對應的日期,而“格式化模式”中的普通字符保留原樣。
  • 3.格式化同一日期
    可以在“格式化模式”中使用“<”,比如:"%ty-%<tm-%<td"中的三個格式符將格式化同一日期,即含有“<”的格式符和它前面的格式符格式同一個日期,例如:String s = String.format("%ty年%<tm月%<td日",new Date());
    那么%<tm和%<td都格式化new Date(),因此字符串s就是:"11年02月10日"。

8.6.2 不同區域的星期格式

如果想用特定地區的星期格式來表示日期中的星期,可以用format的重載方法:
format (Locale locale,格式化模式,日期列表);
其中的參數locale是一個Locale類的實例,用于表示地域。
Locale類的static常量都是Locale對象,其中US是表示美國的static常量。

7.Math類、BigInteger類和Random類——8.7知識

8.7.1 Math類

Math類在java.lang包中。Math類包含許多用來進行科學計算的類方法,這些方法可以直接通過類名調用。
另外,Math類還有兩個靜態常量,它們分別是:
E 2.7182828284590452354和PI 3.14159265358979323846。
以下是Math類的常用類方法:

  • public static long abs(double a) 返回a的絕對值。
  • public static double max(double a,double b) 返回a、b的最大值。
  • public static double min(double a,double b) 返回a、b的最小值。
  • public static double random() 產生一個0到1之間的隨機數(不包括0和1)。
  • public static double pow(double a,double b) 返回a的b次冪。
  • public static double sqrt(double a) 返回a的平方根。
  • public static double log(double a) 返回a的對數。
  • public static double sin(double a) 返回正弦值。
  • public static double asin(double a) 返回反正弦值。
  • public static double ceil(double a) 返回大于a的最小整數,并將該整數轉化為double型數據。
  • public static double floor(double a) 返回小于a的最大整數,并將該整數轉化為double型數據。
  • public static long round(double a) 返回值是(long)Math.floor(a+5),即所謂a的“四舍五入”后的值。

8.7.2 BigInteger類

java.math包中的BigInteger類提供任意精度的整數運算。可以使用構造方法:
public BigInteger(String val) 構造一個十進制的BigInteger對象。
以下是BigInteger類的常用類方法:

  • public BigInteger add(BigInteger val) 返回當前大整數對象與參數指定的大整數對象的和。
  • public BigInteger subtract(BigInteger val)返回當前大整數對象與參數指定的大整數對象的差。
  • public BigInteger multiply(BigInteger val)返回當前大整數對象與參數指定的大整數對象的積。
  • public BigInteger divide(BigInteger val)返回當前大整數對象與參數指定的大整數對象的商。
  • public BigInteger remainder(BigInteger val)返回當前大整數對象與參數指定的大整數對象的余。
  • public int compareTo(BigInteger val) 返回當前大整數對象與參數指定的大整數的比較結果,返回值是1、-1或0,分別表示當前大整數對象大于、小于或等于參數指定的大整數。
  • public BigInteger pow(int a) 返回當前大整數對象的a次冪。
  • public String toString() 返回當前大整數對象十進制的字符串表示。
  • public String toString(int p) 返回當前大整數對象p進制的字符串表示。

8.7.3 Random類

Random類的如下構造方法:

public Random(); public Random(long seed);

第一個構造方法使用當前及其實踐作為種子創建一個Random對象,第二個構造方法使用參數seed指定的種子創建一個Random對象。
隨機數生成器random調用不帶參數的nextInt()方法:

Random random=new Random(); random.nextInt();

返回一個0至n之間(包括0,但不包括n)的隨機數
隨機數生成器random調用帶參數的nextInt(int m)方法(參數m必須取正整數值)

8.數字格式化——8.8知識

8.8.1 format方法

Formatter類提供了一個和C語言printf函數類似的format方法:format(格式化模式,值列表)
該方法按著“格式化模式”返回“值列表”的字符串表示。
Java已經將format方法做為了String類的靜態方法,因此,程序可以直接使用String類調用format方法對數字進行格式化。

  • 1.格式化模式:format方法中的“格式化模式”是一個用雙引號括起的字符序列(字符串),該字符序列中的字符由格式符和普通字符所構成。
    例如:"輸出結果%d,%f,%d"中的%d和%f是格式符號。
    format方法返回的字符串就是“格式化模式”中的格式符被替換為它得到的格式化結果后的字符串。
    例如:String s = String.format(“%.2f”,3.141592);那么s就是“3.14”.
  • 2.值列表:format方法中的“值列表”是用逗號分隔的變量、常量或表達式。 例如:
    String s=format("%d元%0.3f公斤%d臺",888,999.777666,123); 那么,s就是"888元999.778公斤123臺"。
  • 3.格式化順序:format方法默認按從左到右的順序使用“格式化模式”中的格式符來格式化“值列表”中對應的值,而“格式化模式”中的普通字符保留原樣。
    例如,假設int型變量x和double型變量y的值分別是888和3.1415926,
    那么對于String s = format("從左向右:%d,%.3f,%d",x,y,100);
    字符串s就是:從左向右:888,3.142,100

    • 注1:改變默認的順序(從左向右)進行格式化,在格式符前面添加索引符號index$,例如,1$表示“值列表”中的第1個,2$表示“值列表”中的第2個,
      對于:String s=String.format(“不是從左向右:%2$.3f,%3$d,%1$d”,x,y,100);
      字符串s就是:不是從左向右:3.142,100,888
    • 注2:如果準備在“格式化模式”中包含普通的%,在編寫代碼時需要連續鍵入兩個%,如:
      String s=String.format("%d%%",89); 輸字符串s是:"89%"

8.8.2 格式化整數

  • 1.%d、%o、%x和%X
    格式符可格式化byte、Byte、short、Short、int、Integer、long和Long型數據。
  • 2.修飾符
    • 加號修飾符"+"格式化正整數時,強制添加上正號,例如,%+d將123格式化為"+123"。
    • 逗號修飾符“,”格式化整數時,按"千"分組。
  • 3.數據的寬度
    數據的寬度就是format方法返回的字符串的長度。規定數據寬度的一般格式為“%md”,其效果是在數字的左面增加空格;或"%-md“,其效果是在數字的右面增加空格,
    例如,將數字59格式化為寬度為8的字符串:String s=String.format("%8d",59);
    字符串s就是:“ 59",其長度(s.length())為8,即s在59左面添加了6個空格字符。
    • 對于:String s=String.format(“%-8d”,59);字符串s就是:"59 ",其長度(s.length())為8。
    • 對于:String s=String.format("%5d%5d%8d",59,60,90);字符串s就是:“59 60 90”(長度為18)。

注:如果實際數字的寬度大于格式中指定的寬度,就按數字的實際寬度進行格式化。
可以在寬度的前面增加前綴0,表示用數字0(不用空格)來填充寬度左面的富裕部分,例如:String s=String.format("%08d",12);字符串s就是:"00000012",其長度(s.length())為8,即s在12的左面添加了6個數字0。

8.8.3 格式化浮點數

  • 1.float,Float,double和Double
    %f,%e(%E),%g(%G)和%a(%A)格式符可格式化float、Float、double和Double:
    • %f將值格式化為十進制浮點數,小數保留6位。
    • %e(%E) 將值格式化為科學記數法的十進制的浮點數(%E在格式化時將其中的指數符號大寫,例如5E10)。
  • 2.修飾符
    • 加號修飾符"+"格式化正數時,強制添加上正號,例如%+f將123.78格式化為"+123.78", %+E將123.78格式化為"+1.2378E+2"。
    • 逗號修飾符“,”格式化浮點數時,將整數部分按“千”分組。
  • 3.限制小數位數與數據的“寬度”
    "%.nf"可以限制小數的位數,其中的n是保留的小數位數,例如%.3f將6.1256格式化為"6.126"(保留3位小數)。
    規定寬度的一般格式為“%mf”(在數字的左面增加空格),或“%-md”(在數字的右面增加空格)。

    注:如果實際數字的寬度大于格式中指定的寬度,就按數字的實際寬度進行格式化

9.Class類與Console類——8.9知識

8.9.1 Class類

  • 1.使用Class的類方法得到一個和某類(參數className指定的類)相關的Class對象:
    public static Class forName(String className) throws ClassNotFoundException??
    上述方法返回一個和參數className指定的類相關的Class對象。如果類在某個包中,className必須帶有包名,例如, className="java.util.Date"。
  • 2.步驟1中獲得的Class對象調用
    public Object newInstance() throws Exception方法就可以得到一個className類的對象。
    要特別注意的是:使用Class對象調用newInstance()實例化一個className類的對象時,className類必須有無參數的構造方法。

8.9.2 Console類

如果希望在鍵盤輸入一行文本,但不想讓該文本回顯,即不在命令行顯示,那么就需要使用java.io包中的Console類的對象來完成。
首先使用System類調用console()方法返回一個Console類的一個對象,比如cons:
Console cons = System.console();
然后,cons調用readPassword()方法讀取用戶在鍵盤輸入的一行文本,并將文本以一個char數組返回:
char[] passwd = cons.readPassword();

8.10 Pattern類與Matcher類

Pattern類和Matcher類在java.util.regex包中。
以下結合具體問題來講解使用Pattern類和Matcher類的步驟。假設有字符串:
String input = "hello,good morning,this is a good idea"
我們想知道input從哪個位置開始至哪個位置結束曾出現了字符串good。
使用Pattern類和Matcher類檢索字符串str中的子字符串的步驟如下:

  • 1.建立模式對象
    使用正則表達式regex做參數得到一個稱為模式的Pattern類的實例pattern:
    例如:
String regex = "good"; Pattern pattern = Pattern.compile(regex);

模式對象是對正則表達式的封裝。Pattern類調用類方法compile(String regex)返回一個模式對象,其中的參數regex是一個正則表達式, 稱為模式對象使用的模式。

  • 2.得到匹配對象
    模式對象pattern調用matcher(CharSequence input)方法返回一個Matcher對象matcher,稱為匹配對象
    Matcher matcher = pattern.matcher(input);
    Matcher對象matcher可以使用下列方法尋找字符串input中是否有和模式regex匹配的子序列(regex是創建模式對象pattern時使用的正則表達式)。
    • public boolean find():尋找input和regex匹配的下一子序列,如果成功該方法返回true,否則返回false。
    • public boolean matches():matcher調用該方法判斷input是否完全和regex匹配。
    • public boolean lookingAt():matcher調用該方法判斷從input的開始位置是否有和regex匹配的子序列。
    • public boolean find(int start) : matcher調用該方法判斷input從參數start指定位置開始是否有和regex匹配的子序列 。
    • public String replaceAll(String replacement): matcher調用該方法可以返回一個字符串,該字符串是通過把input中與模式regex匹配的子字符串全部替換為參數replacement指定的字符串得到的.
    • public String replaceFirst(String replacement): matcher調用該方法可以返回一個字符串,該字符串是通過把input中第1個與模式regex匹配的子字符串替換為參數replacement指定的字符串得到的。

二、腳本截圖

三、學習感受

  • 本周的學習內容相較于上周較為簡單,重點在于正則表達式,理解起來比較費勁,之后也會對這一部分進行鞏固的。
  • 本周的結對項目進入了完善和整合階段,進行了整體總結
  • 本周的團隊項目也對之前的《需求規格說明書》和團隊分工進行了完善,確定分工

轉載于:https://www.cnblogs.com/wyf20175217/p/10681235.html

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的《JAVA程序设计》_第七周学习总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。