首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Java中比较字符串忽略大小写

如何在Java中比较字符串忽略大小写
EN

Stack Overflow用户
提问于 2020-12-25 07:50:12
回答 1查看 78关注 0票数 1

新手在这里,我正在尝试比较品牌和显示字符串的数组。现在似乎可以工作了,但我不知道如何使比较不区分大小写。到目前为止,我找到的所有选项都是将一个字符串与另一个字符串进行比较。我有什么方法可以做这样的比较吗?现在只接受字符串数组中声明的值。

附注:这是一个现有的作业,我们的老师希望我们在此基础上进行构建,因此我使用"isValid“方法进行验证。

谢谢!

代码语言:javascript
复制
    import com.entertainment.Television;
    import java.util.Arrays;
    import java.util.Scanner;
    
    class TelevisionConsoleClient {
    
        private static final Scanner scanner = new Scanner(System.in);
    
        public static void main(String[] args) {
            welcomeMessage();
        }
    
        public static void welcomeMessage() {
    
            //Welcome message to buyer
            System.out.println("Welcome to Our Online Ordering System.");
            System.out.println("Please answer the questions below to submit your order.");
    
            String brand = brandChoice();
            String display = displayChoice();
            int size = sizeChoice();
    
            System.out.println("Thank you. The television you ordered is: ");
            television(brand, display, size);
    
            //close scanner
            scanner.close();
        }
    
    
        public static String brandChoice() {
            String brandChoice = null;
            boolean hasBrand = false;
    
            while (!hasBrand) {
    
                System.out.println("Please enter the desired brand " + Arrays.toString(Television.VALID_BRANDS) + ":");
                brandChoice = scanner.nextLine();
    
                if (Television.isValidBrand(brandChoice))
                    hasBrand = true;
                else
                    System.out.println("Sorry " + brandChoice + " is not a valid brand");
            }
            return brandChoice;
        }
    
        private static String displayChoice() {
            String displayChoice = null;
            boolean hasDisplay = false;
    
            while (!hasDisplay) {
    
                System.out.println("Please enter the desired display type " + Arrays.toString(Television.VALID_DISPLAY) + ":");
                displayChoice = scanner.nextLine();
    
                if (Television.isValidDisplay(displayChoice))
                    hasDisplay = true;
                else
                    System.out.println("Sorry " + displayChoice + " is not a valid display type");
            }
            return displayChoice;
        }
    
        private static int sizeChoice() {
            Integer sizeChoice = null;
            boolean hasSize = false;
    
            while (!hasSize) {
    
                System.out.println("Please enter the desired size " + Arrays.toString(Television.VALID_SIZES) + ":");
                sizeChoice = Integer.parseInt(scanner.nextLine());
    
                if (Television.isValidSize(sizeChoice))
                    hasSize = true;
                else
                    System.out.println("Sorry " + sizeChoice + " is not a valid size");
            }
            return sizeChoice;
        }
    
        private static void television(String brand, String display, int size) {
            System.out.println(new Television(brand, display, size));
        }
    
    }


package com.entertainment;

public class Television {

    // CLASS OR STATIC VARIABLES - STORED IN THE SHARED AREA ASSOCIATED WITH A CLASS
    public static final String[] VALID_BRANDS = {"Samsung", "LG", "Sony", "Toshiba"};
    public static final String[] VALID_DISPLAY = {"LED", "OLED", "PLASMA", "LCD", "CRT"};
    public static final int[] VALID_SIZES = {32, 40, 43, 50, 55, 60, 65, 70, 75, 80};

    // FIELDS - AKA 'INSTANCE VARIABLES', 'ATTRIBUTES', 'PROPERTIES'
    private String brand;
    private String display;
    private int size;


    // CONSTRUCTORS
    // No-arg constructor.
    public Television() {
        // possible additional "setup" or initialization code here
        // want it to run for every instance created
    }

    // 3-arg constructor
    public Television(String brand, String display, int size) {
        this.brand = brand;
        this.display = display;
        this.size = size;
    }


    // ACCESSOR METHODS (getters/setters)

    public String getBrand() {
        return brand;
    }

    public String getDisplay() {
        return display;
    }

    public int getSize() { return size; }


    public static boolean isValidBrand(String brand) {
        boolean isValid = false;

        for (String currentBrand : VALID_BRANDS) {
            if (currentBrand.equals(brand)) {
                isValid = true;
                break;
            }
        }
        return isValid;
    }

    public static boolean isValidDisplay(String display) {
        boolean isValid = false;

        for (String currentDisplay : VALID_DISPLAY) {
            if (currentDisplay.equals(display)) {
                isValid = true;
                break;
            }
        }
        return isValid;
    }

    public static boolean isValidSize(int size) {
        boolean isValid = false;

        for (int currentSize : VALID_SIZES) {
            if (currentSize == size) {
                isValid = true;
                break;
            }
        }
        return isValid;
    }

    public String toString() {
        return "Television: " + getBrand() + ", Display: " + getDisplay() + ", Size: " + getSize() + " inches.";
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-25 07:52:21

String.equals(Object)更改为String.equalsIgnoreCase(String)。那是,

代码语言:javascript
复制
if (currentBrand.equals(brand))
if (currentDisplay.equals(display))

代码语言:javascript
复制
if (currentBrand.equalsIgnoreCase(brand))
if (currentDisplay.equalsIgnoreCase(display))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65444158

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档