Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.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,我有一个字符串数组,其中包含:多余的水、果汁和多余的牛奶,因此我想知道如何去掉多余的字符串,并使用字符串中唯一的第二个单词,以便预期的输出是水、果汁和牛奶。使用string.split(“”)将字符串拆分为一个空格,然后检查结果以查看字符串长度是否=2。如果是,则取数组的第二个元素,否则取第一个元素 for( int i = 0; i < array.length; i++ ) { String[] parts = array[i].split(' '); if( part

我有一个字符串数组,其中包含:多余的水、果汁和多余的牛奶,因此我想知道如何去掉多余的字符串,并使用字符串中唯一的第二个单词,以便预期的输出是水、果汁和牛奶。

使用string.split(“”)将字符串拆分为一个空格,然后检查结果以查看字符串长度是否=2。如果是,则取数组的第二个元素,否则取第一个元素

for( int i = 0; i < array.length; i++ ) {
    String[] parts = array[i].split(' ');
    if( parts.length == 2 ) {
        array[i] = parts[1];
    }
}
for(int i=0;i
编辑:如果要删除所有重复的单词,可以使用两次遍历数组来执行以下操作:

    // Pass 1 -- find all duplicate words
    Set<String> wordSet = new HashSet<>();
    Set<String> duplicateSet = new HashSet<>();
    for (int i = 0; i < array.length; i++) {
        String[] parts = array[i].split(" ");
        for (String part : parts) {
            if (!wordSet.contains(part)) {
                // Haven't seen this word before
                wordSet.add(part);
            } else {
                // This word is a duplicate word
                if (!duplicateSet.contains(part)) {
                    duplicateSet.add(part);
                }
            }
        }
    }

    // Pass 2 -- remove all words that are in the duplicate set
    for (int i = 0; i < array.length; i++) {
        String[] parts = array[i].split(" ");
        String dedupedString = "";
        for (String part : parts) {
            if (!duplicateSet.contains(part)) {
                dedupedString += part + " ";
            }
        }
        array[i] = dedupedString;
    }
//传递1——查找所有重复的单词
Set wordSet=newhashset();
Set duplicateSet=新HashSet();
for(int i=0;i
使用String.split(“”)将字符串拆分为一个空格,然后检查结果以查看字符串长度是否=2。如果是,则取数组的第二个元素,否则取第一个元素

for( int i = 0; i < array.length; i++ ) {
    String[] parts = array[i].split(' ');
    if( parts.length == 2 ) {
        array[i] = parts[1];
    }
}
for(int i=0;i
编辑:如果要删除所有重复的单词,可以使用两次遍历数组来执行以下操作:

    // Pass 1 -- find all duplicate words
    Set<String> wordSet = new HashSet<>();
    Set<String> duplicateSet = new HashSet<>();
    for (int i = 0; i < array.length; i++) {
        String[] parts = array[i].split(" ");
        for (String part : parts) {
            if (!wordSet.contains(part)) {
                // Haven't seen this word before
                wordSet.add(part);
            } else {
                // This word is a duplicate word
                if (!duplicateSet.contains(part)) {
                    duplicateSet.add(part);
                }
            }
        }
    }

    // Pass 2 -- remove all words that are in the duplicate set
    for (int i = 0; i < array.length; i++) {
        String[] parts = array[i].split(" ");
        String dedupedString = "";
        for (String part : parts) {
            if (!duplicateSet.contains(part)) {
                dedupedString += part + " ";
            }
        }
        array[i] = dedupedString;
    }
//传递1——查找所有重复的单词
Set wordSet=newhashset();
Set duplicateSet=新HashSet();
for(int i=0;i
如果您只想删除特定的子字符串,那么:

String[] array = {"Extra Water", "Juice", "Extra Milk"};
array = Arrays.stream(array).map(s-> s.replaceAll("Extra", "")).toArray();

这将使用Java 8流,但您也可以简单地通过迭代来完成。

如果您只想删除一个特定的子字符串,那么:

String[] array = {"Extra Water", "Juice", "Extra Milk"};
array = Arrays.stream(array).map(s-> s.replaceAll("Extra", "")).toArray();

这使用Java 8流,但您也可以简单地通过迭代来完成。

只需迭代数组中的每个元素,替换数组中每个元素中的“多余”,然后修剪空白即可

    String[] array = {"Extra Water", "Juice", "Extra Milk"};
    for (int i = 0; i < array.length; i++) {
        array[i] = array[i].replace("Extra", "").trim();
    }
    for (String each : array) {
        System.out.println(each);
    }
String[]数组={“额外的水”、“果汁”、“额外的牛奶”};
for(int i=0;i
只需迭代数组的每个元素,替换数组每个元素中的“额外”,然后修剪空白

    String[] array = {"Extra Water", "Juice", "Extra Milk"};
    for (int i = 0; i < array.length; i++) {
        array[i] = array[i].replace("Extra", "").trim();
    }
    for (String each : array) {
        System.out.println(each);
    }
String[]数组={“额外的水”、“果汁”、“额外的牛奶”};
for(int i=0;i
您的逻辑不清楚。“Extra”是唯一不必要的词还是有其他这样的词?如果第一个词在数组中是重复的,我只想使用第二个词。因此,如果数组是Extra Water、Juice、Extra Milk、Good Grape、Good Apple、Tasty Orange,那么输出将是Water、Juice、Milk、Grape、Apple、Tasty Orange。您的逻辑不清楚。“Extra”是唯一不必要的单词还是有其他类似的单词?如果数组中的第一个单词是重复的,我只想使用第二个单词。因此,如果数组是Extra Water、Juice、Extra Milk、Good Grape、Good Apple、Tasty Orange,那么输出将是Water、Juice、Milk、Grape、Apple、Tasty Orange
map(s->s.replaceFirst(^Extra),”)
在这种情况下可能更合适:)
map(s->s.replaceFirst(^Extra),“”)
在这种情况下可能更合适:)