java中对字符串数组去重并忽略大小写

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中对字符串数组去重并忽略大小写相关的知识,希望对你有一定的参考价值。

比如给一个"abc","ABC","123","AbC","aBC","aaa"。
结果为"abc","123","aaa"。 abc随便留下哪个都可以,反正重复的字符串只要一个,忽略大小写。求大神
多谢各位啦,都很OK,可惜答案只能选一个给最快的了。不然都给啦。这么简单想法。全转一样直接存就自动去除啦。唉,人太笨了。真心感谢各位的回答。

你是要写一个实现了这样功能的程序吗?

首先你要有思想去解决这个问题,你知道该怎么做,你才能去利用java这个语言工具去实现,其实编程最核心的就是思想(算法),当然还有数据结构,这两个东西才是程序设计的核心。

这个题很简单嘛,首先在内存里面开辟一个集合空间s,你用来存放你想要的结果,然后依次去遍历你这个数组,每次取一个(统一转换成小写),然后看看你的s里面是否包含了这个元素,没有包含就放进去,包含了就跳过这个,这样不是当你遍历完你的数组的时候,你要的结果就有了吗?

以上是我的一个思想,当然也是最常规的解法。现在就是要你用语言去实现了。看看,不会写我可以帮你,有什么问题就继续追问,没问题请记得采纳,谢谢!
参考技术A package test;

import java.util.HashMap;

public class Test 
public static void main(String[] args) 
String s[] = "abc","ABC","123","AbC","aBC","aaa";
HashMap<String, Integer> hm = new HashMap<String, Integer>();
for(String ss:s)
hm.put(ss.toLowerCase(), 1);   //用hashmap除去重复的值

for(String ss:hm.keySet())
System.out.println(ss);  //这里直接输出了,如果要保存在这里做操作就可以了,


 运行通过,嘿嘿,

希望能给楼主帮助,求采纳~~

本回答被提问者采纳
参考技术B package test;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

public class Test 

    public static void main(String[] args) 
        //String[] arg =  "123", "abc", "df", "ABC", "abc", "DF", "s" ;
        String[] arg = "abc","ABC","123","AbC","aBC","aaa";
        System.out.println(Arrays.toString(getArray(arg)));

    

    public static String [] getArray(String [] array)
        List<String> list = new ArrayList<String>();
        Set<String> set = new HashSet<String>();
        for(String s : array)
            if(set.add(s.toLowerCase()))
                list.add(s);
            
        
        return list.toArray(new String [list.size()]);
    

纯手打代码,验证通过

参考技术C 首先利用String的toLowerCase()方法可以将一个字符串中的大写子母变成小写字母,然后参考下面的

import java.util.*;

class BaiDu

public static void main(String[] args)

TreeSet<String> tr = new TreeSet<String>();
String[] s ="abc","abc","123","abc","abc","aaa";
System.out.print("====处理前=======");
for(int i=0;i<s.length;i++)
System.out.print(s[i]+" ");
tr.add(s[i]);


String[] s2= new String[tr.size()];
System.out.println("=====处理后======");
for(int i=0;i<s2.length;i++)
s2[i]=tr.pollFirst();//从TreeSet中取出元素重新赋给数组
System.out.print(s2[i]+" ");


简洁的数组去重并排序

 1 var c=[1,8,6,4,88,22,99,4,6,86,5,58,89,5];
 2 c.sort(function (a,b) {
 3     return a-b;//从小到大排序 改变原数组
 4 });
 5 c = unique(c);
 6 function unique(arr){
 7    var res = [arr[0]];
 8   for(var i=1;i<arr.length;i++){
 9     if(arr[i] !== res[res.length-1]){
10       res.push(arr[i]);
11     }
12   };
13     return res;
14 };

 

var a= [1,2,23,4],
b = [2,2,5,6,7];
var d=a.concat(b);//a在前 生成新数组

以上是关于java中对字符串数组去重并忽略大小写的主要内容,如果未能解决你的问题,请参考以下文章

如何让字符串数组的Contains忽略大小写

java字符串数组去重并计数

Java字符串替换忽略大小写

如何在java中对字符串进行排序时忽略空格?

java string 判断一个字符串里是不是包含另一个字符串,忽略大小写

在oracle中怎样进行忽略大小写的查询