
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" }
请问大侠们,这个要怎么实现呢? 展开
;Stirng[] s=new String{"材料厂","采购站","自 购","甲 供","甲 控","调 入"}
我想要以下结果:
str数组按照s数组来排序
即,得到以下结果:
str=new String{"材料厂=0","采购站=0", "自 购=0","甲 供=0", "甲 控=200", "调 入=0" }
请问大侠们,这个要怎么实现呢? 展开
4个回答
展开全部
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));
}
}
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));
}
}
展开全部
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);
}
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);
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用=作为分隔符
str[i].split("=")然后取数组第一个空间的值去与s[i]比较如果值相同就把str[i]赋值到s[i]
然后遍历输出s[i]
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]);
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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);
试试看行不行,随便写的没测试过
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();
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询