Java學習心得 一

2021-09-13 12:21:06 字數 4179 閱讀 4206

六.課後作業

例:

string s1="helloworld";

string s2="helloworld";

string s3=new string("helloworld");

system.out.println(s2==s1); //true

system.out.println(s3==s1); //false

1.==比較的是位址值

2.new物件建立新的位址,所以不相等;並且new物件也建立了乙個字面量

3.如果要比較內容,string可以直接使用equals (注意:!!!string重寫了父類的equals方法)

例:

string s4=s1+s2;

string s5=s1+"helloworld";

string s6="a"+"b"+"c";

system.out.println(s4==s5); //false

system.out.println(s4+","+s5+","+s6);

請問s6建立了幾個物件? == 1個==

1.求字串的位元組數,不管中文還是英文,都按照unicode,位元組數=字元個數*2

2.求字串的長度,一般按照中文2個,英文1個(與編碼有關) (常見的編碼:iso-8859-1 utf-8 gbk/gb2312)

1.stringbuilder執行緒不安全的,stringbuffer執行緒安全

2.兩者的api基本一樣,除了少數操作變長字串的時候有無synchronized關鍵字

3.單執行緒建議使用stringbuilder,多執行緒如果要使用建議使用strungbuffer或者自己做安全處理

正規表示式是對字串操作的一種邏輯公式,就是用事先定義好的一些特定字元、及這些特定字元的組合,組成乙個「規則字串」,這個「規則字串」用來表達對字串的一種過濾邏輯。

靈活性,邏輯性和功能性非常強.

可以迅速地用極簡單的方式達到字串的複雜控制.

對於剛接觸的人來說,比較晦澀難懂.

一、校驗數字的表示式

數字:^ [0-9]*$

n位的數字:^\d$

至少n位的數字:^\d$

m-n位的數字:^\d$

零和非零開頭的數字:^(0|[1-9][0-9]*)$

非零開頭的最多帶兩位小數的數字:^([1-9][0-9]*)+(.[0-9])?$

帶1-2位小數的正數或負數:^(-)?\d+(.\d)?$

正數、負數、和小數:^(-|+)?\d+(.\d+)?$

有兩位小數的正實數:^ [0-9]+(.[0-9])?$

有1~3位小數的正實數:^ [0-9]+(.[0-9])?$

非零的正整數:^ [1-9]\d*$ 或 ^([1-9][0-9])$ 或 ^+?[1-9][0-9]$

非零的負整數:^-[1-9]0-9"$ 或 ^-[1-9]\d$

非負整數:^\d+$ 或 ^ [1-9]\d*|0$

非正整數:^-[1-9]\d*|0$ 或 ^((-\d+)|(0+))$

非負浮點數:^\d+(.\d+)?$ 或 ^ [1-9]\d*.\d*|0.\d*[1-9]\d*|0?.0+|0$

非正浮點數:^((-\d+(.\d+)?)|(0+(.0+)?))$ 或 ^(-([1-9]\d*.\d*|0.\d*[1-9]\d*))|0?.0+|0$

正浮點數:^ [1-9]\d*.\d*|0.\d*[1-9]\d*$ 或 ^(([0-9]+.[0-9][1-9][0-9])|([0-9][1-9][0-9].[0-9]+)|([0-9][1-9][0-9]))$

負浮點數:^-([1-9]\d*.\d*|0.\d*[1-9]\d*)$ 或 ^(-(([0-9]+.[0-9][1-9][0-9])|([0-9][1-9][0-9].[0-9]+)|([0-9][1-9][0-9])))$

浮點數:^(-?\d+)(.\d+)?$ 或 ^-?([1-9]\d*.\d*|0.\d*[1-9]\d*|0?.0+|0)$

二、校驗字元的表示式

20. 漢字:^ [\u4e00-\u9fa5]$

21. 英文和數字:^ [a-za-z0-9]+$ 或 ^ [a-za-z0-9]$

22. 長度為3-20的所有字元:^.$

23. 由26個英文本母組成的字串:^ [a-za-z]+$

24. 由26個大寫英文本母組成的字串:^ [a-z]+$

25. 由26個小寫英文本母組成的字串:^ [a-z]+$

26. 由數字和26個英文本母組成的字串:^ [a-za-z0-9]+$

27. 由數字、26個英文本母或者下劃線組成的字串:^\w+$ 或 ^\w$

28. 中文、英文、數字包括下劃線:^ [\u4e00-\u9fa5a-za-z0-9_]+$

29. 中文、英文、數字但不包括下劃線等符號:^ [\u4e00-\u9fa5a-za-z0-9]+$ 或 ^ [\u4e00-\u9fa5a-za-z0-9]$

30. 可以輸入含有^%&』,;=?katex parse error: can't use function '\"' in math mode at position 1: \̲"̲等字元:[^%&',;=?\x22]+

31. 禁止輸入含有~的字元:[ ^ ~\x22]+

scanner sc=new scanner(system.in);

system.out.print("請輸入字串:");

string s=sc.nextline();

stringbuffer s1=new stringbuffer(s);

stringbuffer s2=new stringbuffer(s1.reverse().tostring());

if(s2.tostring().equals(s)) else

string regex1="[a-za-z][0-9a-za-z\\u4e00-\\u9fa5]";

string regex2="[a-za-z][0-9a-za-z\\u4e00-\\u9fa5]";

string regex3="[a-za-z][0-9a-za-z\\u4e00-\\u9fa5]";

string s="cts1234567890zxcvbnm";

boolean b1=s.matches(regex1);

boolean b2=s.matches(regex2);

boolean b3=s.matches(regex3);

system.out.println(b1||b2||b3);

string s1=s.substring(0, 3);

string s2=s.substring(3);

string s11=s1.replaceall("[a-za-z]","*");

string s12=s2.replaceall("[0-9a-za-z\\u4e00-\\u9fa5]", "*");

string s3=s.substring(0, 4);

string s4=s.substring(4);

string s23=s3.replaceall("[a-za-z]","*");

string s24=s4.replaceall("[0-9a-za-z\\u4e00-\\u9fa5]", "*");

string s5=s.substring(0, 5);

string s6=s.substring(5);

string s35=s5.replaceall("[a-za-z]","*");

string s36=s6.replaceall("[0-9a-za-z\\u4e00-\\u9fa5]", "*");

system.out.println((s11+s12).equals("********************")||(s23+s24).equals("********************")||(s35+s36).equals("********************"));

string regex="\\|";		   				

string s="北京|上海|武漢|成都";

string s1=s.split(regex);

system.out.println(arrays.tostring(s1));

Java學習心得

string systemname system.getproperties getproperty os.name if systemname.tolowercase startswith win else 定義時間格式 private static datetimeformatter sf da...

JAVA學習心得 執行緒

1 執行緒的優先順序都在常數1 thread.min priority 到10 thread.max priority 之間。若沒有明確設定,則執行緒的優先順序為常數5 thread.norm priority 執行緒優先順序可以通過setpriority int grade 方法調整。getpri...

學習心得(一)

1.利用好手頭上的資源而不要一味地屯資源,資源只有被利用才是有價值的 2.關於筆記 筆記只是幫助我們學習和精進的一種工具,它只是一種方法,一種手段,但是絕不是我們的目的,沒有必要強迫自己在做筆記時,把每乙個字都寫的端正和美觀,把筆記做得完美,不僅消耗我們的時間,而且很可能它浪費了我們原本可以用來做題...