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中对字符串数组去重并忽略大小写的主要内容,如果未能解决你的问题,请参考以下文章