求路过的大神指点一下思路,最好给出代码。。
6个答案 按时间排序 按投票排序
-
public static void main(String[] args) { String[] arr = {"apple Orange", "ORANGE apple", "APPLeoRange", "APPLe oRange grape", "HI There", "THERE hI"}; Map<String, String> cache = new HashMap<String, String>(); for (String s : arr) { char[] ca = s.replaceAll("\\s+", "").toLowerCase().toCharArray(); Arrays.sort(ca); cache.put(new String(ca), s); } System.out.println(cache.values()); }
2013年7月10日 16:02
-
class Sort { private static final String[] strings = {"apple Orange", "ORANGE apple", "APPLeoRange", "APPLe oRange grape", "HI There", "THERE hI"}; public static void main(String...args) { final Map<String, String> dict = new LinkedHashMap<String, String>(); for (String s : strings) { dict.put(toKey(toTreeSet(s)), s); } for (String s : dict.values()) { System.out.println(s); } } private static TreeSet<String> toTreeSet(final String s) { final TreeSet<String> set = new TreeSet<String>(); final StringTokenizer st = new StringTokenizer(s, " "); while (st.hasMoreTokens()) { set.add(st.nextToken().toLowerCase()); } return set; } private static String toKey(TreeSet<String> set) { StringBuilder sb = new StringBuilder(128); for (String s : set) { sb.append(s); } return sb.toString(); } }
2013年7月01日 10:42
-
如果字符串是这样:"a B", "A b", "A b c", "B a", "E F", "F e"
那结果是
"A b c", "B a", "F e"
还是
"B a", "F e"2013年6月30日 16:29
-
package com.cherish.shopping.util; import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.StringTokenizer; public class StringUtil { /** * 处理字符串数组,将字符串数组转化成list调用dealString(String[] args)处理 * @param args * @return 处理后的字符串数组 */ public String[] dealString(String[] args) { //List<String> list = Arrays.asList(args); List<String> list = new ArrayList<String>(); for (String s: args) { list.add(s); } dealList(list); return list.toArray(new String[list.size()]); } /** * 处理list * @param list * @return 去掉相同只保留最后一个单词的list集合 */ public void dealList(List<String> list) { List<String> listTemp = new ArrayList<String>(); for (int i=0; i<list.size()-1; i++) { for (int j=i+1; j<list.size(); j++) { if (compareWords(list.get(i), list.get(j))) { listTemp.add(list.get(i)); } } } for (String s: listTemp) { list.remove(s); } } /** * 比较两个字符串是否相同(规则1) * @param str1 * @param str2 * @return true(str1 == str2) */ public boolean compareWords(String str1, String str2) { List<String> listStr1 = getWords(str1); List<String> listStr2 = getWords(str2); if (listStr1.size() == listStr2.size()) { listStr1 = toLowerCase(listStr1);//全部转化成小写 listStr2 = toLowerCase(listStr2); Collections.sort(listStr1);//将两个list排序,就不用考虑顺序的问题了,直接依次比较对应位置的单词是否相同 Collections.sort(listStr2); int num = 0;//相同单词的个数 for (int i=0; i<listStr1.size(); i++) { if (listStr1.get(i).equals(listStr2.get(i))) { num ++; } } return num == listStr1.size(); } return false; } /** * 获取字符串里面的所有单词 * @param str * @return 装有字符串所有单词的list */ public List<String> getWords(String str) { List<String> list = new ArrayList<String>(); StringTokenizer tokenizer = new StringTokenizer(str); while (tokenizer.hasMoreTokens()) { list.add(tokenizer.nextToken()); } return list; } /** * 将list里面每个单词都转化成小写 * @param list * @return list(里面的字符串都是小写) */ public List<String> toLowerCase(List<String> list) { List<String> newList = new ArrayList<String>(); for (String s: list) { newList.add(s.toLowerCase()); } return newList; } public static void main(String[] args) { String[] arrays = {"apple Orange", "ORANGE apple", "APPLe oRange", "APPLE oRange grape", "HI There", "THERE hI"}; String[] result = new StringUtil().dealString(arrays);//处理后的结果 System.out.println("处理前:"); for (String s: arrays) { System.out.print("\"" + s + "\"" + ", "); } System.out.println(); System.out.println("处理后:"); for (String s: result) { System.out.print("\"" + s + "\"" + ", "); } } }
2013年6月29日 23:21
-
package com.chinahrt.zyn.iteye; import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; public class StringColculate { public void compare(String[] s){ List<String> strList = new ArrayList<String>(); for(int i=0;i<s.length;i++){ String s1 = s[i]; int index = isHave(strList,s1); if(index==-1){ strList.add(s1); }else{ strList.remove(index); strList.add(index,s1); } } System.out.println(strList.toString()); } //list中是否含有s,有的话返回序号 public int isHave(List<String> list,String s){ int index = -1; boolean flag = false; for(int i=0;i<list.size();i++){ String str=list.get(i); if(isEqual(str,s)){ index=i; break; } } return index; } /** * 判断s1和s2是否相等 * @param s1 * @param s2 * @return */ public boolean isEqual(String s1,String s2){ if((s1.length())==s2.length()){ String[] s11 = s1.split(" "); String[] s22 = s2.split(" "); Set<String> set = new HashSet<String> (); for(String str:s11){ set.add(str.toLowerCase()); } int m = set.size(); for(String str:s22){ set.add(str.toLowerCase()); } int n = set.size(); if(m==n){ return true; }else{ return false; } }else{ return false; } } public static void main(String[] args) { // TODO Auto-generated method stub String[] s = {"apple Orange","ORANGE apple","APPLe oRange","APPle oRange grape","HI There","THERE hI"}; StringColculate sc = new StringColculate(); sc.compare(s); } }
2013年6月29日 22:50
相关推荐
C++课程设计之string字符串类 C++课程设计之string字符串类是C++程序设计中的一部分,主要是通过定义字符串类来实现对字符串的赋值、连接、复制、查找、交换操作。下面是相关的知识点: 一、字符串类的定义 在C++...
在这个“C++实现的String字符串类”中,我们将探讨类的设计、重载操作符、内存管理以及类的组合。 首先,一个自定义的`String`类通常会包含以下几个核心部分: 1. **数据成员**:存储字符串的实际字符序列,通常是...
java实现对象转化为get请求的param参数String字符串,本人自测非常好用,一般对象可以转化键值对的格式,但是最近项目需要自己手动拼接对象作为get请求的参数,百度了一堆还不如自己写一个,欢迎各位使用,有什么...
标题和描述中提到的问题,即“将含有大写字母的string字符串转为全小写字母”,是字符串处理中的一个基本操作,常见于数据清洗、文本分析或者用户输入的规范化等场景。下面我们将详细探讨这个问题,并给出具体的解决...
Base64转String字符串,支持将Base64转化为String字符串
在C语言中,String字符串是字符数组的一种表现形式,它以空字符'\0'作为结束标志。本项目名为"C语言实现String字符串及其函数stringUtil",主要关注的是如何在C语言环境中自定义处理字符串的函数,以扩展标准库中...
创建String字符串 目录 课程导入 掌握String字符串对象的创建 掌握字符串对象的输入与输出 一般程序需要处理大量文本数据Java语言的文本数据被保存为字符或字符串类型。 若干个字符在计算机里面如何存储? 如何引用...
在Android开发中,String字符串数组是一种常见的数据结构,用于存储一系列相关的文本信息。在某些情况下,我们可能需要在运行时动态地向已存在的字符串数组中添加元素,而非仅仅在XML资源文件中静态定义。这就涉及到...
在C++编程中,`std::string`是一个非常重要的数据类型,用于表示和操作字符串。本文将详细解析两种常用的C++ `std::string`截取字符串的方法:`find`和`find_last_of`,以及如何结合使用它们来满足各种字符串处理...
"Java String字符串获取每一个字符及常用方法" 本文主要介绍了Java String字符串获取每一个字符及常用方法,涵盖了字符串的基本操作、获取每一个字符的方法、substring方法、trim方法、charAt方法等,并通过实例...
- `split(String regex)`:根据给定的正则表达式将字符串分割成多个子字符串,并返回一个包含这些子字符串的数组。 ### 示例代码 ```java public class TestJavaDemo01 { public static void main(String[] args)...
Android开发之常用必备工具类图片bitmap转成字符串string与String字符串转换为bitmap图片格式 博文介绍:http://blog.csdn.net/qq_21376985/article/details/52083611
- `compareTo(String)`根据字典顺序比较字符串,返回值为整数,表示当前字符串与另一个字符串的相对顺序。 - `compareToIgnoreCase(String)`同样进行比较,但忽略大小写。 9. **字符串操作方法**: - `substring...
本篇文章将详细介绍如何在C#中实现将一个String字符串转化为适应`IN`后接的参数列表。 首先,我们需要理解`IN`关键字在SQL语句中的作用。`IN`用于指定一个列表,当某字段的值与列表中的任意一项匹配时,返回相应的...
输入的明文密文和密钥都采用string格式字符串,加密结果使用base64编码,解密时候也从base64码解密,参考资料:http://blog.sina.com.cn/s/blog_68b606350100yzud.html
将pdf文件转换成字符串,需要pdf签名的可以用到
JDK1.5中,String类新增了一个很有用的静态方法,这些方法有助于开发人员对字符串的各类操作
MidMid(string,start,length)从string字符串的start字符开始取得length长度的字符串,如果省略第三个参数表示从start字符开始到字符串结尾的字符串 LeftLeft(string,length)从string字符串的左边取得length长度的...
在本篇文章中,我们将深入探讨如何在C#中将字符串转换为字符数组及整数数组。这是一项在处理文本数据时非常有用的技术,特别是在需要对数据进行解析、格式化或进一步处理的情况下。以下是对该主题的详细解释: ### ...
2. 使用`new`关键字:如`new String("Hello")`,这会在堆内存中创建新的字符串对象,即使字符串的内容在常量池中已经存在。 Java字符串是不可变的,这意味着一旦创建,就不能改变其内容。如果需要改变字符串,必须...