对字符串数组进行排序

时间:2016-03-01 01:56:36

标签: java

我有一系列字符串包含:额外的水,果汁和额外的牛奶,所以我想知道如何摆脱额外的东西并使用字符串中唯一的第二个字,以便预期的输出是水,果汁和牛奶。

3 个答案:

答案 0 :(得分:3)

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

 private void GetProducts(int CategoryID)
    {
        ShoppingCart k = new ShoppingCart();
        {
            CategoryID = CategoryID;
        };

        dlProducts.DataSource = null;
        dlProducts.DataSource = k.GetProdcuts();
        dlProducts.DataBind();
    }

这使用Java 8流,但你可以像迭代一样简单地完成它。

答案 1 :(得分:2)

使用String.split('')用空格分割字符串,然后检查结果以查看字符串长度是否== 2.如果是,则取数组的第二个元素,否则为第一个元素。 / p>

for( int i = 0; i < array.length; i++ ) {
    String[] parts = array[i].split(' ');
    if( parts.length == 2 ) {
        array[i] = parts[1];
    }
}

编辑:如果你想删除所有重复的单词,你可以在数组上使用两次传递来执行以下操作:

    // 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;
    }

答案 2 :(得分:0)

只需要遍历数组的每个元素并替换&#34; Extra&#34;在数组的每个元素中,然后修剪空格。

    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);
    }