學習藍橋杯過程中總結day1

2021-08-09 15:46:07 字數 2075 閱讀 5536

1字串的處理:string afterstr=str.split(";");//分號為分界符

2加強的for迴圈for(string item : chars)

3字串比較大小

用 string.compareto 方法:

compareto() 的返回值是int, 它是先比較對應字元的大小(ascii碼順序)

1、如果字串相等返回值0

2、如果第乙個字元和引數的第乙個字元不等,結束比較,返回他們之間的差值(ascii碼值)(負值前字串的值小於後字串,正值前字串大於後字串)

3、如果第乙個字元和引數的第乙個字元相等,則以第二個字元和引數的第二個字元做比較,以此類推,直至比較的字元或被比較的字元有一方全比較完,這時就比較字元的長度.

例: string s1 = "abc";

string s2 = "abcd";

string s3 = "abcdfg";

string s4 = "1bcdfg";

string s5 = "cdfg";

system.out.println( s1.compareto(s2) ); // -1 (前面相等,s1長度小1)

system.out.println( s1.compareto(s3) ); // -3 (前面相等,s1長度小3)

system.out.println( s1.compareto(s4) ); // 48 ("a"的ascii碼是97,"1"的的ascii碼是49,所以返回48)

system.out.println( s1.compareto(s5) ); // -2 ("a"的ascii碼是97,"c"的ascii碼是99,所以返回-2

有三種方法實現

第一種直接用字串類的compareto方法:

string t1="20131011";

string t2="20131030";

intresult = t1.compareto(t2);

第二種是把這個日期字串轉換成long:

******dateformat sdf =new******dateformat("yyyymmdd");

date d1 = sdf.parse(t1);

date d2 = sdf.parse(t2);

longresult = d1.gettime()-d2.gettime();

第三種是把日期字串轉換成整形int:

intint1 = integer.parseint(t1);

intint2 = integer.parseint(t2);

intresult = int1-int2;

注:result大於0,則t1>t2;

result等於0,則t1=t2;

result小於0,則t1

'20131011'.comapreto('20131030')

返回1表示大於,返回0表示相等,返回-1表示小於

千萬別把字串轉成啥日期或整數型別再比較,那會賊慢,迴圈1百萬遍就知道了

public class hello }

先用integer.parseint()轉型,再相減就ok

藍橋杯訓練day1

快速冪 題目描述 給定a,b,p,求 a b mod p。輸入輸入共一行。第一行有三個數,n,m,p。輸出輸出共一行,表示所求。共10組資料 對100 的資料,a,b為long long範圍內的非負整數,p為int內的非負整數。樣例輸入 2 5 3樣例輸出 21 初始的時候可以令res 1 2 判斷...

藍橋杯 數字統計 day1

題目 題目描述 請統計某個給定範圍 l,r 的所有整數中,數字 2 出現的次數。比如給定範圍 2,22 數字 2 在數 2 現了 1 次,在數 12 現 1 次,在數 20 現 1 次,在數 21 現 1 次,在數 22 現 2 次,所以數字 2 在該範圍內一共出現了 6 次。輸入描述 輸入共 1 ...

藍橋杯刷題 Day1

1.2020省賽 單詞分析 暴力 輸入一行包含乙個單詞,單詞只由小寫英文本母組成。對於所有的評測用例,輸入的單詞長度不超過 1000。輸出兩行,第一行包含乙個英文本母,表示單詞 現得最多的字母是哪 個。如果有多個字母出現的次數相等,輸出字典序最小的那個。第二行包含乙個整數,表示出現得最多的那個字母在...