java String数组按照某个中文数组排序

如:有动态数组Stirng[]str=newString{"甲供=0","采购站=0","调入=0","材料厂=0","甲控=200","自购=0"};Stirng[]s... 如:有动态数组Stirng[] str=new String{"甲 供=0", "采购站=0", "调 入=0", "材料厂=0", "甲 控=200", "自 购=0"}
;Stirng[] s=new String{"材料厂","采购站","自 购","甲 供","甲 控","调 入"}

我想要以下结果:
str数组按照s数组来排序
即,得到以下结果:
str=new String{"材料厂=0","采购站=0", "自 购=0","甲 供=0", "甲 控=200", "调 入=0" }

请问大侠们,这个要怎么实现呢?
展开
 我来答
犹芝兰D6
2012-07-25 · 超过10用户采纳过TA的回答
知道答主
回答量:47
采纳率:0%
帮助的人:17.7万
展开全部
public class Wgy {
public static void main(String[] args) {
String[] str = new String[] { "甲 供=0", "采购站=0", "调 入=0", "材料厂=0",
"甲 控=200", "自 购=0" };
String[] s = new String[] { "材料厂", "采购站", "自 购", "甲 供", "甲 控", "调 入" };
StringBuffer result = new StringBuffer();
for (int i = 0; i < s.length; i++) {
for (int j = 0; j < str.length; j++) {
if ((s[i].substring(0,2)).equals(str[j].substring(0, 2))) {
result.append(str[j]);
result.append(",");
}
}
}
String res=result.substring(0,result.length()-1);
String[] ret=res.toString().split(",");
System.out.println(Arrays.toString(ret));
}
}
翔空冥斩剑
2012-07-25 · TA获得超过119个赞
知道小有建树答主
回答量:104
采纳率:0%
帮助的人:123万
展开全部
void sort(String[] str, String[] s) {
String[] temp = new String[str.length];
for (String subStr : str) {
for (int i = 0; i < s.length; i++) {
if (subStr.startsWith(s[i])) {
temp[i] = subStr;
}
}
}
System.arraycopy(temp, 0, str, 0, str.length);
}
public void main() {
String[] str = new String[] { "甲 供=0", "采购站=0", "调 入=0", "材料厂=0",
"甲 控=200", "自 购=0" };
String[] s = new String[] { "材料厂", "采购站", "自 购", "甲 供", "甲 控", "调 入" };
sort(str, s);
for (String subStr : str)
System.out.println(subStr);
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
大伦明君DE
2012-07-25 · TA获得超过1729个赞
知道小有建树答主
回答量:1046
采纳率:0%
帮助的人:933万
展开全部
用=作为分隔符
str[i].split("=")然后取数组第一个空间的值去与s[i]比较如果值相同就把str[i]赋值到s[i]
然后遍历输出s[i]
追问
能详细点儿吗?
追答
public class DrawLineTest {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String[] str1 = {"甲 供=0", "采购站=0", "调 入=0", "材料厂=0", "甲 控=200", "自 购=0"};
String[] str2 = {"材料厂","采购站","自 购","甲 供","甲 控","调 入"};
for(int i=0;i<str1.length;i++){
String str[] = str1[i].split("\\=");
for(int j=0;j<str2.length;j++){
if(str2[j].equals(str[0])){
str2[j] = str1[i];
}
}
}
for(int i=0;i<str1.length;i++){
System.out.println(str2[i]);
}
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ykl522
2012-07-25
知道答主
回答量:24
采纳率:0%
帮助的人:12.8万
展开全部
List list = new List();

for(int i=0;i<s.length;i++){
for(int j=0;j<str.length;j++){
if(str[j].contains(s[i])){
list.add(str[j])

}

}

}
system.out.println(list);
试试看行不行,随便写的没测试过
追问
不行,两数组是不一样的
追答
大哥你不会变通下啊?
把list改成
String[] newStr = new String[str.length];
把list.add(str[j])
改成newStr[i]=str[j];
最后改为:
System.out.println(Arrays.toString(newStr));

或者list改为ArrayList
ArrayList list = new ArrayList();
最后把list转为数组

String[] newStr = (String[]) list.toArray();
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式