有一字符串: String test=",8,2,4,7,4,11,5,8,2,7,";
求这个结果: String testend=",4,11,5,8,2,7,";
要求:
1.去掉test字符串中有重新的数据项
2.保留最后一个数据重复项
3.保证字符串的原始顺序.
谁能写个符合这样的java程序方法给我,或提供思路>
实现上面的test到testend的结果
在此,先进行感谢
求这个结果: String testend=",4,11,5,8,2,7,";
要求:
1.去掉test字符串中有重新的数据项
2.保留最后一个数据重复项
3.保证字符串的原始顺序.
谁能写个符合这样的java程序方法给我,或提供思路>
实现上面的test到testend的结果
在此,先进行感谢
for exanpleString test=",8,2,4,7,4,11,5,8,2,7,";
List<String> list = new ArrayList<String>(Arrays.asList(test.split(",", -1)));
for (int i=list.size()-1; i>0; i--) {
if ("".equals(list.get(i))) {continue;}
int j = list.indexOf(list.get(i));
if (i != j) {
list.remove(j);
}
}
System.out.println(list);
StringBuilder buf = new StringBuilder();
for (int i=0; i<list.size()-1; i++) {
buf.append(list.get(i)).append(",");
}
buf.append(list.get(list.size()-1));
String testend = buf.toString();
System.out.println(testend);
{
String test = ",8,2,4,7,4,11,5,8,2,7,";
Map<String, Integer> map = new HashMap<String, Integer>(); String[] chars = test.split(","); for (int i = 0 ; i < chars.length;i++)
{
String s = chars[i];
if (s.length() > 0)
{
Integer pre_count = map.get(s) == null ? map.put(s, 1) : map
.put(s, map.get(s)+1);
}
}
StringBuilder sb = new StringBuilder();
sb.append(',');
for(int i = 0; i < chars.length; i++)
{
String s = chars[i];
if (s.length() > 0)
{
int count = map.get(s);
if(count > 1)
{
map.put(s, count - 1);
}
else if(count == 1)
{
sb.append(s).append(',');
}
}
}
System.out.println(sb);
}
String arr[] = test.split(",");
Map map = new LinkedHashMap();
for(int i=0;i<arr.length;i++){
String tmp = (String)map.get(arr[i]);
if(!arr[i].equals(tmp)){
map.put(arr[i], arr[i]);
}else if(arr[i].equals(tmp)){
map.remove(arr[i]);
map.put(arr[i], arr[i]);
}
}
System.out.println(map.size());
Iterator it = map.keySet().iterator();
while(it.hasNext()){
System.out.print(it.next() + ",");
}
public static void main(String[]args){
String test = new StringBuffer(",8,2,4,7,4,11,5,8,2,7,").reverse().toString();
String st[] = test.split(",");
HashSet set = new HashSet();
String testend = ",";
StringBuffer sb = new StringBuffer();
for(String temp : st){
if(!temp.equals(",")){
if(!set.contains(temp)){
set.add(temp);
sb.append(temp + ",");
}
}
}
testend = sb.reverse().toString();
System.out.println(testend);
}
}
修改一下 public static void main(String[]args){
String test = ",8,2,4,7,4,11,5,8,2,7,";
test = new StringBuffer(test).reverse().toString();
String st[] = test.split(",");
HashSet set = new HashSet();
String testend = ",";
StringBuffer sb = new StringBuffer();
for(String temp : st){
if(!temp.equals(",")){
if(!set.contains(temp)){
set.add(temp);
sb.append(temp + ",");
}
}
}
testend = sb.reverse().toString();
System.out.println(testend);
}
// TODO Auto-generated method stub
String test=",8,2,4,7,4,11,5,8,2,7,";
String[] t = test.split(",");
System.out.println(Arrays.toString(t));
List<String> l = new ArrayList<String>();
for(int i=0;i<t.length;i++){
if(l.contains(t[i])){
l.remove(t[i]);
l.add(t[i]);
}else{
l.add(t[i]);
}
}
StringBuffer sb = new StringBuffer();
for(String s : l){
sb.append(s);
sb.append(",");
}
String testend = sb.toString();
System.out.println(testend);
}
String test = new StringBuffer(",8,2,4,7,4,11,5,8,2,7,").reverse().toString();
String st[] = test.split(",");
HashMap map= new HashMap();
String testend = ",";
StringBuffer sb = new StringBuffer();
for(String temp : st){
if(!temp.equals(",")){
if(!map.contains(temp)){
map.add(temp);
sb.append(temp + ",");
}
}
}
testend = sb.reverse().toString();
System.out.println(testend);
}
}
更多的技术问题。欢迎大家到QQ群52734945里讨论
public static void test4() {
String test=",8,2,4,7,4,11,5,8,2,7,";
String[] s = test.split(",");
StringBuffer sb = new StringBuffer();
for(int i = s.length - 1; i >= 0; i--) {
if(sb.indexOf(s[i]) == -1) {
sb.insert(0, "," + s[i]);
}
} System.err.println(sb);
}
public static void main(String[] args) {
String test = ",8,2,4,7,4,11,5,8,2,7,";
String[] strings = test.split(","); //将所给字符串根据','来分解成数组
List<String> list = new ArrayList<String>(); //生成一个有序的集合来存储符合要求的字符串
StringBuffer sb=new StringBuffer();
for (String string : strings) {
if(list.contains(string)){ //如果包含此字符串,移除已包含的,并添加新的字符串
list.remove(string);
list.add(string);
} else {
list.add(string); //不包含,直接添加
}
}
for(String string : list){ //通过循环拼凑所需字符串
sb.append(string+",");
}
String testend=new String(sb);
System.out.println(testend);
}
上代码
{
String test=",8,2,4,7,4,11,5,8,2,7,";
StringBuilder testend = new StringBuilder();
Stack<String> input = new Stack<String>();
Stack<String> output = new Stack<String>();
String[] strs = test.split(",");
String tmp;
for(String str : strs)
{
if(!"".equals(str))
input.push(str);
}
while(!input.empty())
{
tmp = input.pop();
if(!output.contains(tmp))
{
output.push(tmp);
}
}
while(!output.empty())
{
testend.append(",");
testend.append(output.pop());
}
testend.append(",");
System.out.println(testend.toString());
}
+1
使用set是最好的饿选择哦。
String test = ",8,2,4,7,4,11,5,8,2,7,";
String st[] = test.split(",");
ArrayList<String> list = new ArrayList<String>();
for(int i=st.length-1;i>=0;i--){
if(!st[i].equals("")&&!list.contains(st[i])){
list.add(st[i]);
}
}
String testend = "";
for(int i=list.size()-1;i>=0;i--){
testend+=list.get(i);
if(i>0){
testend+=",";
}
}
System.out.println(testend);
result = res.replaceAll("((?<=,)\\d*(?=,))((?=.*(?<=,)\\1(?=,)))", "$2");
System.out.println(result.replaceAll(",+", ","));