比较两个字符串s1和s2java_java实现两个字符串的比较

compareTo方法是比较两个字符串的词典顺序

也就是在字典中的顺序,比如“abcd”在“acdb”前面

另外你应该先把字符串转变成int,然后再比较

可以用下面的方法比较两个整数

public int max(int m,int n)

{

if(m>n)

return m;

else if(n>m)

return n;

else return 0;//相等的时候返回0

}

可以用int a=Integer.parseint("20");

来把字符串20转换为整数20并赋予a

--__---------------------------------------------------------------------------------------------------------

java中字符串比较1equals是用来比较字符串是否相等的,==不能用做字符串的比较.如果要比较大小应该用comparet(String),它是依次比较字符串的每个字符的大小

回复:java中字符串比较2

我想知道equals是否既比对象又比值比如:

String s1="hello";

String s2="hello";

String s3=new String("hello");

s1.eauals("hello");

s1.equals(s2);//?

回复:java中字符串比较3

equals比较值是否相同

==比较是否为同一reference

回复:java中字符串比较4

==:比较两个字符串是否为同一个字符串对象

equals:比较两字符串的内容是否相同。

回复:java中字符串比较5

对象的比较必须用equals

== 只是比较两个数据的地址,也就是这两个是不是同一个东西 ...

你一个String 和另一个String == ,绝对不会相等.

因为它们是两个...

回复:java中字符串比较6

equals 是值比较,== 是reference

如果不计较的说可以认为是片面正确,

因为例如 int, boolean 等基本类型的值比较就要用 ==

还有有没有人想过如果不是String 类型的对象那equals比较的是什么呢??例如: List 、Iterator

、Hashtable ......

回复:java中字符串比较7

用equals即比较对象又比较值,事实上,如果两个对象无法进行equals比较,编译根本无法通过.有的情况,比如Double和Float型,比较结果始终是false

==比较是否为同一引用(类型),因此s1==""恒为true

回复:java中字符串比较8

请判断是否正确:

String s1="hello";

String s2="hello";

String s3=new String("hello");

s1.eauals("hello");//true?

s1.equals(s2);//true?

s1==s2//false?

s3=="hello"//false?

还想问一下基本数据类型怎么判断是否相等,==是否可以在基数类中使用:如

int i=1; if (i==1){}

如果不能,是否将i包装成INTEGER类再使用equals

回复:java中字符串比较9

当s1,s2为String型,s1==s2这样写是错误的.判断他们是否相等必须用equals

==用于判断int型,char型等.int i=1; if (i==1){}这样使用是正确的.

回复:java中字符串比较10

1,简单数据类型不可单纯的来做为一个对象,比较值大小时必须用“==”;

2,当用包裹类时,例如 Integer i = new Integer(1);

Integer j = new Integer(1);

i==j是比较的两个对象是否是同一引用,也就是说是否是指的同一对象,显然结果false;

如果用equals比较是比较两者的值是否相同,结果为true;

3,对象的比较除去StringBuffer类,结果都同于第二点(String 也与第二点相同);

4,StringBuffer类两种调用方法都返回false;

5,说一点,楼上的说法是不对的;

回复:java中字符串比较11

楼上,int型和Integer是不一样的.如果你声明变量为int型,是无法使用equals的.我有何错?

回复:java中字符串比较12

呵呵,我是在说你的s1==s2是可以这样比较的,是否是同一对象

_____----------------------------------------------------------------------------------------------------

java中字符串比较为什么不能用“==”

如果说==是比较地址指针的 他照样踢了你呵呵

java是号称无指针的哦,

应该说== 是比较两对象是否在同一个存储单元里的,才比较符合java的说法哦

而equals是比较两对象的内容是否一样啊

所以也不能说==不能比较,只是比较特殊。

看下例:

String str1 =new

String("a");

String str2 =new String("a");

这时str1==str2为比较两个引用地址是否相等,返回false

而str1.equals(str2)是比较两个对象的内容,返回值为true.

----------------------------------------------------------------------------------

关于字符串(String)

[p>字符串是用一对双引号括起来的字符序列,在JAVA语言中,字符串数据实际上由String类所实现的。Java字符串类分为两类:一类是在程序中不会被改变长度的不变字符串;二类是在程序中会被改变长度的可变字符串。Java环境为了存储和维护这两类字符串提供了String和StringBuffer两个类。

一、创建字符串

例: String str=new("This

is a String");

或者 String

str="This is a

String";二、得到字符串对象的有关信息1.通过调用length()方法得到String的长度.

例:

String

str="This is a String";

int len =str.length();

2.StringBuffer类的capacity()方法与String类的length()的方法类似,但是她测试是分配给StringBuffer的内存空间的大小,而不是当前被使用了的内存空间。

3.如果想确定字符串中指定字符或子字符串在给定字符串的位置,可以用indexOf()和lastIndexOf()方法。

String

str="This is a

String";

Int index1 =str.indexOf("i");  

//index=2

Int

index2=str.indexOf('i',index+1);  

//index2=5

Int

index3=str.lastIndexOf("I");  

//index3=15

Int index4=str.indexOf("String"); 

//index4=10三、String

对象的比较和操作

1.String 对象的比较

String类的equals()方法用来确定两个字符串是否相等。

String

str="This is a String";

Boolean result=str.equals("This is another String ");//result=false2.String对象的访问

A、方法charAt()用以得到指定位置的字符。

String

str="This is a String";

char chr=str.charAt(3); //chr="i"B、方法getChars()用以得到字符串的一部分字符串

public void getChars(int srcBegin,int

srcEnd,char[]dst,int dstBegin)

String

str="This is a String";

Char chr =new char[10];

Str.getChars(5,12,chr,0); 

//chr="is a St"C、subString()是提取字符串的另一种方法,它可以指定从何处开始提取字符串以及何处结束。

3.操作字符串

A、replace()方法可以将字符串中的一个字符替换为另一个字符。

String

str="This is a String";

String

str1=str.replace('T','t'); //str1="this is a

String"B、concat()方法可以把两个字符串合并为一个字符串。

String

str="This is a String";

String

str1=str.concat("Test");

//str1="This is a String

Test"C、toUpperCase()和toLowerCase()方法分别实现字符串大小写的转换。

String

str="THIS IS A STRING";

String

str1=str.toLowerCase(); //str1="this is a

string";D、trim()方法可以将字符串中开头和结尾处的空格去掉.

String

str="This is a

String  

";

String

str1=str.trim();  

//

str1="This is a String"E、String

类提供静态方法valueOf(),它可以将任何类型的数据对象转换为一个字符串。如

System.out.println(String,ValueOf(math,PI));

四、修改可变字符串

StringBuffer类为可变字符串的修改提供了3种方法,在字符串中间插入和改变某个位置所在的字符。

1.在字符串后面追加:用append()方法将各种对象加入到字符串中。

2.在字符串中间插入:用insert()方法。例

StringBuffer str=new

StringBuffer("This is a String");

Str.insert(9,"test");

System.out.println(str.toString());

这段代码输出为:This is a test String

3.改变某个位置所在的字符,用setCharAt()方法。

### 回答1: 可以使用strcmp函数来比较两个字符串s1s2,该函数会返回一个整数值,表示两个字符串的大小关系。 如果返回值为,表示两个字符串相等;如果返回值小于,表示s1小于s2;如果返回值大于,表示s1大于s2。 下面是一个示例代码: #include <stdio.h> #include <string.h> int main() { char s1[100], s2[100]; printf("请输入字符串s1:"); scanf("%s", s1); printf("请输入字符串s2:"); scanf("%s", s2); int result = strcmp(s1, s2); if(result == ) printf("s1s2相等\n"); else if(result < ) printf("s1小于s2\n"); else printf("s1大于s2\n"); return ; } ### 回答2: 实现字符串比较的程序可以采用循环遍历字符串的方式,逐个字符地比较两个字符串的每一位。 具体的实现方式可以分为以下步骤: 1. 对比两个字符串的长度,若长度不同则认为两个字符串相等。 2. 对于每一位字符,都逐个进行比较。可以使用for循环逐个比较,或者使用while循环手动实现。 3. 在比较过程中,如果发现有某一位字符不相等,则直接退出循环,同时判断两个字符串相等,终止比较。 4. 如果比较完所有的字符,都发现两个字符串的对应位字符都相等,则认为两个字符串相等。 下面是一个基于C语言实现的具体程序: ``` #include <stdio.h> #include <string.h> int str_cmp(const char *s1, const char *s2) { if (strlen(s1) != strlen(s2)) { return -1; } for (int i = 0; s1[i] != '\0'; i++) { if (s1[i] != s2[i]) { return -1; } } return 0; } int main() { char s1[] = "hello"; char s2[] = "world"; int result = str_cmp(s1, s2); if (result == 0) { printf("两个字符串相等。\n"); } else { printf("两个字符串相等。\n"); } return 0; } ``` 在上面的程序中,首先定义了一个`str_cmp`函数,用于比较两个字符串相等性。在函数中,通过`strlen`函数获取两个字符串的长度,如果长度不同,则认为两个字符串相等,直接返回`-1`。 接下来,使用for循环逐个比较两个字符串中的每一位字符。如果发现有某一位字符不相等,则直接返回`-1`。否则,继续比较下一位字符,直到比较完所有的字符。如果都相等,则认为两个字符串相等,返回`0`。 在`main`函数中,定义了要比较两个字符串`s1`和`s2`,并调用`str_cmp`函数进行比较。根据函数返回值的不同,输出相应的信息。 以上就是一个基本的字符串比较程序的实现方法。 ### 回答3: 在编写程序之前,需要明确两个字符串比较的标准,即是按照字典序排列还是按照长度排列。若是按照字典序排列,则需要对每个字符的ASCII码值进行比较;若是按照长度排列,则需要比较字符串的长度,并逐一比较每个字符。 下面介绍一种按照字典序排列的字符串比较方式的程序: 1. 首先定义两个字符串s1s2,为了方便,假设这两个字符串已经被赋值。 2. 比较两个字符串的长度。如果长度不相等,则可以直接输出字符串长度不同的提示信息。 3. 如果长度相等,则逐一比较每个字符的ASCII码值。可以使用for循环遍历两个字符串的每个字符,比较其ASCII码值。如果字符相等,则继续比较下一个字符;如果字符不相等,则可以直接输出不相等字符的提示信息,并终止比较。 下面是按照字典序排列的字符串比较的Python代码示例: s1 = "hello" s2 = "world" #比较字符串长度 if len(s1) != len(s2): print("两个字符串长度不相等!") else: #逐一比较每个字符的ASCII码值 for i in range(len(s1)): if ord(s1[i]) == ord(s2[i]): continue elif ord(s1[i]) < ord(s2[i]): print("字符串s1小于字符串s2") break else: print("字符串s1大于字符串s2") break 注:ord()函数用于返回字符的ASCII码值,chr()函数用于将ASCII码值转换成对应的字符。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值