比如我有一字符号串,其实是数组的下标,str="3,4,5,7,9,12,15,20";于是根据上面的字符串得到完整的数组下标字符串,如下所示:str="0:1:2:3,4,5,6:7,8:9,10:11:12,13:14:15,16:17:18:19:20";不知道大家有没有什么好的方法得到如上所要求的,要JAVA的程序,谢谢大家指教!为方便联系,可发email:[email protected]或者回帖子也可!回帖者如合适的送分.......
调试欢乐多
然后搞几个循环就行了
不过要麻烦点
你花点时间搞吧
String str = "3,4,5,7,9,12,15,20";
StringBuffer temp = new StringBuffer("");
String[] aaStr = str.split(",");
int j = 0;
for(int i = 0;i < max+1;i++) {
if(j < aaStr.length && i != Integer.parseInt(aaStr[j])) {
temp.append(i + ":");
}else {
temp.append(i+",");
j++;
}
}
temp.deleteCharAt(temp.lastIndexOf(","));
System.out.println(temp.toString());
然后循环做成str2。loop (i)
{
if (ht.containsKey(i)) str2 += i+ ",";
else str2 += i + ":";
}
再去掉最后一个符号,就是楼主所要的字符串了。
String str = "3,4,5,7,9,12,15,20";
String[] strArry = str.split(",");
Arrays.sort((Object[])strArry, new Comparator() {
public int compare(Object o1, Object o2) {
int n1 = Integer.parseInt((String)o1);
int n2 = Integer.parseInt((String)o2);
return (n1 - n2);
}
});
StringBuilder sb = new StringBulder();
int j=0, n=0;
for (int i=0; i<strArry.length; i++) {
n = Integer.parseInt(strArry[i]);
for (;j<n; j++) {
sb.append(j).append(":");
}
sb.append(j++).append(",");
}
sb.deleteCharAt(sb.length()-1);
str = sb.toString();
System.out.println(str);
//str="0:1:2:3,4,5,6:7,8:9,10:11:12,13:14:15,16:17:18:19:20";
public String getArrayString(String str){
String s[]=str.split(",");
int maxindex=Integer.parseInt(s[s.length-1]);
String res="";
int j=0;
for(int i=0;i<=maxindex;i++){
if(i==Integer.parseInt(s[j])){
res+=i+",";
j++;
}else{
res+=i+":";
}
}
res=res.substring(0,res.length()-1);
return res;
}
String s[]=str.split(",");
int maxindex=Integer.parseInt(s[s.length-1]);
String res="";
int j=0;
for(int i=0;i <=maxindex;i++){
if(i==Integer.parseInt(s[j])){
res+=i+",";
j++;
}else{
res+=i+":";
}
}
res=res.substring(0,res.length()-1);
return res;
}
发表于:2007-10-11 17:13:574楼 得分:0
import java.util.*; public class PrintString { public static void main(String args[]){ String str = "3,4,5,7,9,12,15,20";
String[] strArry = str.split(","); Arrays.sort((Object[])strArry, new Comparator <Object >() {
public int compare(Object o1, Object o2) {
int n1 = Integer.parseInt((String)o1);
int n2 = Integer.parseInt((String)o2);
return (n1 - n2);
}
}); StringBuilder sb = new StringBuilder();
int j=0, n=0;
for (int i=0; i <strArry.length; i++) {
n = Integer.parseInt(strArry[i]);
for (;j <n; j++) {
sb.append(j).append(":");
}
sb.append(j++).append(",");
}
sb.deleteCharAt(sb.length()-1);
str = sb.toString();
System.out.println(str); } }
http://topic.csdn.net/u/20071011/15/87bc8a5f-7042-413a-8c94-d86da3ec21cc.html?seed=975993959中的回答我已经编译运行过没有问题