java中对字符串数组去重并忽略大小写
比如给一个{"abc","ABC","123","AbC","aBC","aaa"}。结果为{"abc","123","aaa"}。abc随便留下哪个都可以,反正重复的字...
比如给一个{"abc","ABC","123","AbC","aBC","aaa"}。
结果为{"abc","123","aaa"}。 abc随便留下哪个都可以,反正重复的字符串只要一个,忽略大小写。求大神
多谢各位啦,都很OK,可惜答案只能选一个给最快的了。不然都给啦。这么简单想法。全转一样直接存就自动去除啦。唉,人太笨了。真心感谢各位的回答。 展开
结果为{"abc","123","aaa"}。 abc随便留下哪个都可以,反正重复的字符串只要一个,忽略大小写。求大神
多谢各位啦,都很OK,可惜答案只能选一个给最快的了。不然都给啦。这么简单想法。全转一样直接存就自动去除啦。唉,人太笨了。真心感谢各位的回答。 展开
4个回答
展开全部
你是要写一个实现了这样功能的程序吗?
首先你要有思想去解决这个问题,你知道该怎么做,你才能去利用java这个语言工具去实现,其实编程最核心的就是思想(算法),当然还有数据结构,这两个东西才是程序设计的核心。
这个题很简单嘛,首先在内存里面开辟一个集合空间s,你用来存放你想要的结果,然后依次去遍历你这个数组,每次取一个(统一转换成小写),然后看看你的s里面是否包含了这个元素,没有包含就放进去,包含了就跳过这个,这样不是当你遍历完你的数组的时候,你要的结果就有了吗?
以上是我的一个思想,当然也是最常规的解法。现在就是要你用语言去实现了。看看,不会写我可以帮你,有什么问题就继续追问,没问题请记得采纳,谢谢!
首先你要有思想去解决这个问题,你知道该怎么做,你才能去利用java这个语言工具去实现,其实编程最核心的就是思想(算法),当然还有数据结构,这两个东西才是程序设计的核心。
这个题很简单嘛,首先在内存里面开辟一个集合空间s,你用来存放你想要的结果,然后依次去遍历你这个数组,每次取一个(统一转换成小写),然后看看你的s里面是否包含了这个元素,没有包含就放进去,包含了就跳过这个,这样不是当你遍历完你的数组的时候,你要的结果就有了吗?
以上是我的一个思想,当然也是最常规的解法。现在就是要你用语言去实现了。看看,不会写我可以帮你,有什么问题就继续追问,没问题请记得采纳,谢谢!
展开全部
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); //这里直接输出了,如果要保存在这里做操作就可以了,
}
}
}
运行通过,嘿嘿,
希望能给楼主帮助,求采纳~~
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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()]);
}
}
纯手打代码,验证通过
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
首先利用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]+" ");
}
}
}
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]+" ");
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询