Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从字符串中删除重复字符_Java - Fatal编程技术网

Java 从字符串中删除重复字符

Java 从字符串中删除重复字符,java,Java,我有一个加密或解密文件的程序。关键字是用户输入的字符串,但必须删除任何重复的字母 例如,FEATHER将变成FEATHR 我目前有以下应用程序作为起点,但我不知道如何删除重复的字母。我需要更改或添加什么 import java.io.File; import java.io.FileNotFoundException; import java.io.PrintWriter; import java.util.Scanner; public class Average { public

我有一个加密或解密文件的程序。关键字是用户输入的字符串,但必须删除任何重复的字母

例如,
FEATHER
将变成
FEATHR

我目前有以下应用程序作为起点,但我不知道如何删除重复的字母。我需要更改或添加什么

import java.io.File;
import java.io.FileNotFoundException;

import java.io.PrintWriter;

import java.util.Scanner;


public class Average

{

public static void main(String[] args) throws FileNotFoundException

{

    System.out.print("Would you like to encrypt or decrypt. e/d");
    Scanner ed = new Scanner (System.ed);
    String eOrD = ed.next();

    if (eOrD.equals("e"))
    {

        Scanner console = new Scanner(System.in);

        System.out.print("Output File: ");

        String outputFileName = console.next();


        PrintWriter out = new PrintWriter(outputFileName);

        System.out.print("Please enter an encryption key");
        String keyWord = in.next();
您可以使用collection来存储char序列中的char,Set只允许唯一的条目,因此您将是金色的。例如:

@Test
public void setTest(){
  Set<Integer> integerSet = new LinkedHashSet<>();
  integerSet.add(1); // return true, operation successfull
  integerSet.add(2); // return true
  integerSet.add(1); // return false
  asserEquals(2, integerSet.size()); // test is green, passed
}
@测试
公共无效设置(){
Set integerSet=new LinkedHashSet();
integerSet.add(1);//返回true,操作成功
integerSet.add(2);//返回true
integerSet.add(1);//返回false
asserEquals(2,integerSet.size());//测试为绿色,通过
}

正如在评论和建议中提到的,我们需要保持顺序,而不是所有的Set实现都这样做。谢谢你们

那么,你找到第一个字母E有多远?另外,顺便说一下,您只需要一个扫描对象,而
System.ed
不存在上面的重复链接在这里看起来是一个很好的解决方案。此外,您可以在UI级别实现这一点,即防止用户输入已经输入的字母。这可能比允许他们输入任何他们想要的内容更直观。谢谢,我将使用您所说的
,这样您将获得金牌
。除非使用保留插入顺序的集合,例如
LinkedHashSet
,否则在删除重复项之前,您将删除字母的原始顺序。请参阅复制链接以获得更好的解释。