比较两个列表,看看是否有足够的字符?

时间:2015-12-08 01:42:56

标签: java string oop string-comparison

所以我写了一些代码,并且必须把一个桶作为一个字符列表:“AASDJBDHBDADBIWDBEDUBDCECM”和一个标志:“热狗正在出售”,看看桶中是否有足够的字符来完成标志。

我已经做到这一点,但是当我尝试用不同的元素替换字符时,它不想工作。我似乎无法正确比较。

任何想法

第1类

 package question2;

 import java.util.Scanner;

 public class ShopSign {
 //public String statement;

 public static void main(String[] args) {

    Scanner input=new Scanner(System.in);

    PromptUser promptuser= new PromptUser(input);

    Bucket bucket=new Bucket(input);

    new Checker(bucket.Bucket,promptuser.message);
    }
  }

第2类

 package question2;

 import java.util.Scanner;

 public class Bucket {
 public String Bucket;

 public Bucket(Scanner input){
    System.out.print("Enter the bucket of characters");
    Bucket= input.nextLine();

    }

 }

第3类

 package question2;

 import java.util.Scanner;

 public class PromptUser {
 public String message;

 public PromptUser(Scanner input){
    System.out.print("Enter proposed message:");
    message= input.nextLine();      

    }

 }

第4类

 package question2;

 public class Checker {
 public Checker(String bucket,String promptuser){
    for (int i=0; i<promptuser.length();i++){
        if(bucket.indexOf(promptuser.charAt(i)> -1)){
            bucket.replace(promptuser.charAt(i), "in the");
        }
        else{
            System.out.print("User out: " + promptuser.charAt(i));
            }

        }

     }
  }

1 个答案:

答案 0 :(得分:0)

问题在于,替换funciton不会改变现有的字符串(正如@MadProgrammer所提到的 - 字符串在java中是不可变的)。相反,它会产生另一个字符串。

所以简单地替换

bucket.replace(promptuser.charAt(i), "in the");

bucket = bucket.replace(promptuser.charAt(i), "in the");

应该做的伎俩。虽然:

1)这将是非常低效的 2)我觉得你解决任务错误。