如何将两个字符串中的唯一字母提取到变量中? Java的

时间:2015-10-25 07:00:59

标签: for-loop

我试图编程Flames .. 这是我到目前为止所做的事情。

String name1,name2,uniqueletters;
int x,y;
Scanner zxc = new Scanner(System.in);
System.out.print("Enter the first name:");
name1 = zxc.nextLine();
System.out.print("Enter the second name:");
name2 = zxc.nextLine();
name1 = name1.toUpperCase();
name2 = name2.toUpperCase();
for (x=0;x<name1.length();x++)
{
    for(y=0;y<name2.length();y++)
          {
          if(name1.charAt(x)==name2.charAt(y))

我不知道该添加什么.. 输出必须像这样......

Enter the first name: Hello
Enter the second name: World
Unique letters: HEWRD

2 个答案:

答案 0 :(得分:0)

我将以步骤的形式解释它。

步骤1:创建一个数组,比如a1,大小为26,并初始化为0。

步骤2:遍历string1并为每个字符string1 [i]为数组a1中的该字母赋值1。也就是说,a1 [string1 [i] - &#39; a&#39;] = 1;

步骤3:类似地,对于第二个字符串,创建一个数组a2并初始化为0。

步骤4:类似于step2遍历string2但是对于每个字符string2 [i]为数组a2中的该字母赋值-1。也就是说,a2 [string2 [i] - &#39; a&#39;] = - 1;

步骤5:对于数组a1中的每个元素,从中添加a2中的相应元素。那是a1 [i] = a1 [i] + a2 [i];

步骤6:遍历数组a1并检查每个元素是否为1或-1。这些元素中的每一个对应于在两个字符串中的任一个中唯一的字母表。因此,打印每个相应的字母。

希望这有帮助。

答案 1 :(得分:0)

您可以使用单循环:

    String name1, name2, uniqueletters;
    int x;
    Scanner zxc = new Scanner(System.in);
    System.out.print("Enter the first name:");
    name1 = zxc.nextLine();
    System.out.print("Enter the second name:");
    name2 = zxc.nextLine();
    name1 = name1.toUpperCase();
    name2 = name2.toUpperCase();
    uniqueletters = "";
    for (x = 0; x < name2.length(); x++) {

        if (name1.contains(String.valueOf(name2.charAt(x))) == false) {                
            uniqueletters += String.valueOf(name2.charAt(x));
        }
    }
    for (x = 0; x < name1.length(); x++) {
        if (name2.contains(String.valueOf(name1.charAt(x))) == false) {                
            uniqueletters += String.valueOf(name1.charAt(x));
        }
    }

    System.out.println(uniqueletters);

我没有测试过这个,我只是直接从你的代码中注销