字符串怎麼比較大小?
java中兩個字符串如何比較大小
有三種方法實現
第一種直接用字符串類的compareTo方法:
String t1="20131011"; String t2="20131030"; int result = t1.compareTo(t2);第二種是把這個日期字符串轉換成long:
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); Date d1 = sdf.parse(t1); Date d2 = sdf.parse(t2); long result = d1.getTime()-d2.getTime();第三種是把日期字符串轉換成整形int:
int int1 = Integer.parseInt(t1); int int2 = Integer.parseInt(t2); int result = int1-int2;注:result大於0,則t1>t2;
result等於0,則t1=t2;
result小於0,則t1
字符串大小比較的規則?
比較的時候,從字符串左邊開始,一次比較每個字符,直接出現差異、或者其中一個串結束為止。
比如ABC與ACDE比較,第一個字符相同,繼續比較第二個字符,由於第二個字符是後面一個串大,所以不再繼續比較,結果就是後面個串大。
再如ABC與ABC123比較,比較三個字符後第一個串結束,所以就是後面一個串大。
所以,長度不能直接決定大小,字符串的大小是由左邊開始最前面的字符決定的。
java怎麼比較字符串大小?
比較兩個字符串的的大小 str1和str2分別是兩個字符串str1==str2或者是
str1.equals(str2)如果要是兩個字符串忽略大小寫的話用
str1.equalsIgnoreCase(str2)也可以是 str1.compareTo(str2)
第二個用加號連接起來就可以了
C語言中字符串的大小指的是什麼
以字符是ASCII值確定,憨較規則是,從第一個字符開始,順次向後直到出現不同的字符為止,然後以第一個不同的字符的ASCII值確定,例如上面的”abc”和"aabdfg",由於第一個字符相同,都是'a'所以看下一個字符,第二個字符,一個是'b',一個是‘a',由於b的ASCII值比a的ASCII值大,所以,這二個字符串的比較結果是"abc">"aabdfg"
c語言中比較字符串的strcmp函數是怎麼比較大小的?
strcmp(s1,s2) 對兩個字符串進行比較,逐一比較字符的ascii碼,a為97,A為65 所以a>A;分出大小後面不再比較;
如果s1>s2,返回1;
如果s1=s2,返回0;
如果s1
在C語言中字符串的大小怎麼比較啊?
strcmp
原型:extern int strcmp(char *s1,char * s2);
用法:#include
功能:比較字符串s1和s2。
說明:
當s1
當s1=s2時,返回值=0
當s1>s2時,返回值>0
即:兩個字符串自左向右逐個字符相比(按ASCII值大小相比較),直到出現不同的字符或遇 '\0'為止。如:
"abcdefg"和"12",首先比較'a'和'1','a'的ASC碼是97,'1'的ASC碼是49,所以"abcdefg"> "12",返回值是97-49=48
"abc"和"ABC",首先比較'a'和'A','a'的ASC碼是97,'A'的ASC碼是65,所以"abc"> "ABC",返回值是97-65=32
"1000"和"2",首先比較'1'和'2','1'的ASC碼是49,'2'的ASC碼是50,所以"1000"< "2",返回值是49-50=-1
字符串大小比較
如果單純比較長度,直接調用類似於strlen()之類的函數就可以,加以比較即可.
如果比較字符串的大小,則比較的是字符的ASCII編碼的大小.你搜索一下ASCII碼錶就可以得知每一個ASCII字符的大小. 參考www.wpyz.net/noip/11-1.asp
在比較時,設置一個計數器,從零開始,一直循環到最短的那個字符結束,一位一位進行比較,
1.如果 字符串1的第n位的ASCII碼值 等於 字符串2的第n位的ASCII碼值
則 繼續比較下一位
2.如果 字符串1的第n位的ASCII碼值 大於 字符串2的第n位的ASCII碼值
則 輸出結果:1,表示字符串1 > 字符串2;
3.如果 字符串1的第n位的ASCII碼值 小於 字符串2的第n位的ASCII碼值
則 輸出結果:-1 表示字符串1 < 字符串2;
4.如果 每一位的ASCII碼值都相等,而且長度相同,
則 輸出結果:0 表示字符串1 == 字符串2;
5.如果 字符串1是字符串2的前m位,例如 abcd 與abcdef 比較,
則 字符串1 <字符串2.< p>字符串2.<>
原因是,到第5位時,字符串1的ASCII值是0,而字符串2的ASCII值為'e',即十進制的101,當然是字符串2大了.
具體到 cds和lesoqd
從第一位開始,'c'和'l'比較,當然是'c' < 'l'了,所以,"cds" < "lesoqd"
常用的幾位ascii的順序從小到大為:
0..9, A..Z, a..z.
誰編個比較2個字符串大小的程序
我這個簡單
#include
bi(char a[],char b[])
{
int x,y;
x=0;
y=0;
while(a[x]==b[x]&&a[x]!='\0') x++;
if(a[x]=='\0'&&b[x=='\0']) y=0;
else y=a[x]-b[x];
if(y==0) printf("\ns1=s2\n");
else if(y>0) printf("\ns1>s2\n");
else printf("\ns1
}
void main()
{
char s1[100],s2[100];
gets(s1);
gets(s2);
bi(s1,s2);
}
C++字符串比較大小
字符串的比較是逐個相應字符進行比較(比較他們的ASCII碼),直到有兩個字符不相等為止,ASCII碼大的字母所在字符串就大,與字符串長度無關。對兩個相等長度的字符串,若每個字符都比較完畢後仍相等,則兩字符串相等;對不等長的字符串,若當短的字符串比較完畢時所有字符仍相等,則長度較長的字符串大!