2 sinat 34794545 sinat_34794545 于 2016.04.26 10:55 提问

字符串逆序输出,并判断前后是否相等

package lab10_4;

/**
*

  • @author Administrator
    */
    import java.util.Scanner;
    public class Lab10_4 {

    /**

    • @param args the command line arguments
      */
      public static void main(String[] args) {
      // TODO code application logic here
      Scanner scan=new Scanner(System.in);
      System.out.print("请输入一个字符串:");

      StringBuffer s=new StringBuffer(scan.nextLine());
      System.out.print("逆序后的字符串是:");
      StringBuffer s1=new StringBuffer("");
      for( int i=s.length()-1;i>=0;--i){
      System.out.print(s.charAt(i));
      s1.append(s.charAt(i));
      }
      s1.toString();
      s.toString();
      System.out.println();
      System.out.print(s.equals(s1));

    }

}
图片说明
为什么输出的是false

7个回答

liuyihuansmm
liuyihuansmm   2016.04.26 11:08
已采纳

哈哈哈哈,这道题还是考细致的。朋友,System.out.print(s.equals(s1)); 这里的s和s1你再仔细看看是什么类啊,虽然你s.toString();但是你s还是StringBuffer类啊
,而StringBufferl类没有实现equals的方法,所以它用的还是Object继承而来的equals()方法,当然是false了。
我想,你其实代码是想写成这样的

    String s2  =  s1.toString();
    String s3   =  s.toString();
    System.out.println();
    System.out.print(s2.equals(s3));
CSDNXIAOD
CSDNXIAOD   2016.04.26 11:03

java 判断字符串是否相等
java 判断字符串是否相等
Java中判断字符串是否相等
----------------------biu~biu~biu~~~在下问答机器人小D,这是我依靠自己的聪明才智给出的答案,如果不正确,你来咬我啊!

w172087242
w172087242   Ds   Rxr 2016.04.26 11:09

因为StringBuffer没有重写hashCode和equals。
所以想要比较,需要先toString,然后再比较。

yomo127
yomo127   2016.04.26 11:12

因为s和s1还是StringBuffer的格式,改成String型的equals就行了

    String res1 = s1.toString();
    String res = s.toString();
    System.out.println();
    System.out.print(res.equals(res1));

或者

    System.out.print(s1.toString().equals(s.toString()));
sl_18500
sl_18500   2016.04.26 14:50

String res1 = s1.toString();
String res = s.toString();
System.out.println();
System.out.print(res.equals(res1));

Joson_Chou
Joson_Chou   2016.04.29 09:21

Stringbuffer两个对象并不相等图片说明

oSanYeCao1234567
oSanYeCao1234567   Ds   Rxr 2016.09.15 19:14

对象要比较是否相等,可以重写equal方法实现比较

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
判断输入的两个字符串是否相等
java编写判断输入的两个字符串是否相等
NDK中开发中比较字符串是否相等,
/** 利用Java的String类来完成字符编码转换*/char* Jstring2CStr(JNIEnv* env,jstring jstr) { LOGI("enter CStr2Jstring 1"); char* rtn = NULL; jclass clsstring = (*env)->FindClass(env,"java/
汇编:判断两个字符串是否相等
;判断两个字符串是否相等相等输出match 否则no match assume cs:code,ds:data   data segment string1 db 100 dup(0) string2 db 100 dup(0) string3 db 'please input string 1 end by space',0dh,0ah,'$' stri
shell中如何判断两个字符串相等
注意的几点: 1、if和[ ]之间要空格。 2、[ ]和“ ”之间要空格 3、“ ”和=之间要空格, 否则都会报错
从键盘输入两个字符串,如果相等,输出match,否则输出no match。
DATAS SEGMENT ;此处输入数据段代码 INFO1 DB 0DH,0AH,'INPUT STRING:$' INFO2 DB 0DH,0AH,'MATCH! $' INFO3 DB 0DH,0AH,'NO MATCH! $' BUFA DB 21 DB ? DB 20 DUP(0) BUFB DB 21
脚本乐园 Shell字符串比较相等、不相等方法小结
#!/bin/sh    #测试各种字符串比较操作。 #shell中对变量的值添加单引号,爽引号和不添加的区别:对类型来说是无关的,即不是添加了引号就变成了字符串类型, #单引号不对相关量进行替换,如不对$符号解释成变量引用,从而用对应变量的值替代,双引号则会进行替代 #author:tenfyguo    A="$1" B="$2"    echo "输入的原始值:A=$A,
Java中判断两个字符串相等的两种方式
<br />      最近在用Java做开发的时候有个地方要解析判断两个字符串是否相等,开始首先想到的是直接用==来比较,因为这个是最直观的,但是实际开发中并不能得到期望的结果,后来换用equals方法就可以了,今天在看书的时候看到两种方式的比较,这里记下来:在字符串的比较中一定不可以用“==”来比较, 因为这个运算符只能够确定两个字符串是否放置在同一个位置 上,如果两个字符串放置在同一个位置上肯定是相等的,但是将内容相同的多个字符串的拷贝放置在不同位置上是完全有可能的,特别是在那些大型、企业级的开发过
ORACLE中字符串是否相等的比较
在ORACLE中,将空字符串视为NULL,任何值与NULL比较结果都为NULL。如此一来,在比较两个字符串的时候就会出现意外。请看以下的例子:DECLARE     i VARCHAR2(10) := NULL;    v VARCHAR2(10) := ABC;BEGIN    IF(i = v) THEN        DBMS_OUTPUT.PUT_LINE(相等);    ELSE
判断两个字符串内容是否相等
示例代码: public class TestString { public static void main(String[] args) { String str1 = "123"; String str2 = "123"; // str2 = null; System.out.println(str2.equals(str1));
java中需要用equals来判断两个字符串值是否相等
在C++中,两个字符串比较的代码可以为:  (string1==string2)  但在java中,这个代码即使在两个字符串完全相同的情况下也会返回false  Java中必须使用string1.equals(string2)来进行判断  eg:  string s1="Hello";  string s2="Hello";  则(s1==s2)=true;  因为他们指向的同