Java String型別如何判斷相等?
最初我寫的是:
輸入一個String類的變數,如果它既不是A 也不是B,那就報錯,重新輸入。
我寫的程式碼是
Scanner sc=new Scanner(System.in);
System.out.print("請輸入種類(A或B):");
String type=sc.next();
if(type!="A"&&type!="B")
{
}
if(type=="A"||type=="B")
{
}
發現無論輸入A還是B,它都不能正確的判斷。
百度之後,方才明白:
equals()比較的是物件的內容(區分字母的大小寫格式),equalsignorecase()是不區分大小寫比較。但是如果使用“==”比較兩個物件時,比較的是兩個物件的記憶體地址,所以不相等。即使它們內容相等,但是不同物件的記憶體地址也是不相同的。
更改為:
if(!type.equals("A")&&!type.equals("B"))
{}
if(type.equals("A")||type.equals("B"))
{}
就能正確判斷了。
相關推薦
Java String型別如何判斷相等?
最初我寫的是: 輸入一個String類的變數,如果它既不是A 也不是B,那就報錯,重新輸入。 我寫的程式碼是 Scanner sc=new Scanner(System.in); System.out.print("請輸入種類(A或B):"); String type=sc.next
Java, String型別轉Date型別的方法
前端獲取的資料是:yyyy-MM-dd(如:”2017-10-19”),後端實體類的資料型別是java.util.Date,其中的資料轉換問題 String time = "2017-10-19"; SimpleDateFormat sdf = new Simple
Java String型別轉換成Date日期型別
插入資料庫時,存入當前日期,需要格式轉換 import java.text.SimpleDateFormat; formatter = new SimpleDateFormat( "yyyy-MM
java String型別轉換方法
public static void main(String[] args) { String origin = "123"; Integer.valueOf(origin);//轉為Integer封裝型別 Integer.parseInt(origin);/
Java String型別時間串 轉SQL Date型別存入資料庫
開發過程中經常會遇到Java字串型別的時間需要存到資料庫中,但是Java String 轉date得到的結果往往不能直接存到資料庫中,因為java與資料庫date不太一樣,因此還需要進一步的處理,非常麻煩。初學者往往費九牛二虎之力才能解決這一問題。 經
Java中型別判斷的幾種方式
![](https://img2020.cnblogs.com/other/1739473/202010/1739473-20201011090038028-1131985594.png) ## 1. 前言 在**Java**這種強型別語言中型別轉換、型別判斷是經常遇到的。今天就細數一下**Java**中
Java新手:學習Java基礎String型別的判斷功能時的模擬登入案例
需求: 模擬登入,給三次機會,並提示還有幾次機會 功能實現: 首先,定義兩個字串物件,用於儲存已經存在的使用者名稱和密碼 public static void main(String[] args) { String username="admin";
Java中判斷兩個lang型別是否相等問題
開發中有遇到Long型別比較是否相等,比如Long A和Long B判斷是否相等,當時習慣性的直接A==B; 自測的話確實麼有問題,但是測試那邊測試就有問題,當時鬱悶了一下然後換成了A.equals(B)或A.longValue()==B.longValue()都是正確
java-String類中的各字符串判斷(包括" "和null的區別)
mos 大小 既然 main 引用數據類型 同時 ins emp gpo package com.day7.one; public class DemoString1 { /** * @param args * 1.boolean equals(Objec
java equals方法判斷字符串不相等情況返回true?
字符 java equals nag term mark RoCE 51cto ces 如右圖。java equals方法判斷字符串不相等情況返回true?
【Redis】在java中的使用-存取string型別
我們知道,redis為非關係型資料庫,說明它也是一個數據庫。對其進行操作有兩個基本途徑: 客戶端redis-cli中的操作 在java程式碼中的使用 那今天我們就以存取string型別的資料為例來簡單說說使用。 客戶端中的操作
java 物件String型別屬性排序
方法一:內部類實現comparator介面 程式碼演示 import java.util.Arrays; import java.util.Comparator; import java.util.Scanner; class B{ String name; String da
mysql設定表列的時候把時間設定成String型別,java 程式後面涉及到當前時間和資料庫裡資料的差值計算,怎麼破?
mysql設定表列的時候把時間設定成String型別,java 程式後面涉及到當前時間和資料庫裡資料的差值計算,怎麼破? 如果改資料庫裡面表的列屬性varchar改成time,需要很多地方改進,而且專案已經試運行了,怕出問題? 在java程式中型別轉化很多,String型別可以轉化為date
java中型別轉string的一些方法和區別
在java專案開發中,常常用到一些將型別轉換為string的功能,特地做個總結。 1.(String)要轉換的物件 這是標準的型別轉換,將object轉成String型別的值。使用這種方法時,需要注意的是型別必須能轉成String型別。因此最好用instanceof做個型別檢查,以判斷是否可
java基礎筆記(十三)String型別與int型別相互轉換
package com.st.basis.day13.BasicTypeWrapperClass; /* * String與int的相互轉換 * * */ public class StringIntTran { public static void main(String[] a
java各型別String,int,char,long,StringBuilder,StringBuffer,Integer之間的轉換總結
String和char型別之間的轉換: 1、 String→char:因為String是字串,而char是單個字元,只能把String 轉化為char陣列,方法為 char []ch=str.toCharArray(); 2、char→String: 方法如下: 方法一:St
java-模擬存放String型別資料的棧
package com.sc; /** * * 用來模擬一個存放String資料的棧 */ class Node{ private String str; public Node(){} public Node(String str){
Java-String和StringBuffer,基本型別包裝類
String String類是final類,String物件是常量物件,被初始化或賦值後,它的值和所分配的記憶體內容就不可再改變 當需要重新賦值的時候,系統發現原來的空間不能再追加新的內容,系統只能重新生成第二個新的物件str並重新申請一個新的記憶體空間。 s
Java把控制檯的e.printStackTrace()異常資訊轉為String型別
import java.io.PrintWriter; import java.io.StringWriter;public class ExceptionUtil { public ExceptionUtil() { } public static String toSt
Java中String型別轉換成日期型別
Java中String型別轉換成資料庫中的日期型別,新增到資料庫 //建立sdf物件,指定日期格式型別 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); //sdf將字串轉化成java.util.D