基于java中另一个数组中的值初始化数组
这个代码怎么了?我想在数组中插入cnew,因为如果carr包含'a',cnew应该得到100(int),对于't'-cnew应该得到101(int),对于'g'-110和'c'-111基于java中另一个数组中的值初始化数组,java,arrays,Java,Arrays,这个代码怎么了?我想在数组中插入cnew,因为如果carr包含'a',cnew应该得到100(int),对于't'-cnew应该得到101(int),对于'g'-110和'c'-111 String s="atgc"; len=s.length(); char[] carr=s.toCharArray(); char[] cnew = new char[len]; for(int i=0;i<len;i++){ for(int j=0;j<len;j++){ if
String s="atgc";
len=s.length();
char[] carr=s.toCharArray();
char[] cnew = new char[len];
for(int i=0;i<len;i++){
for(int j=0;j<len;j++){
if(carr[j]=='a'){
cnew[i]=100;
}else if(carr[j]=='t'){
cnew[i]=101;
}else if(carr[j]=='g'){
cnew[i]=110;
}else
cnew[i]=111;
}
}
String s=“atgc”;
len=s.长度();
char[]carr=s.toCharArray();
char[]cnew=新字符[len];
对于(int i=0;i不需要嵌套循环:
String s="atgc";
int len=s.length();
char[] carr = s.toCharArray();
int[] cnew = new int[len];
for(int i=0;i<len;i++) {
if (carr[i]=='a'){
cnew[i]=100;
} else if(carr[i]=='t') {
cnew[i]=101;
} else if(carr[i]=='g') {
cnew[i]=110;
} else {
cnew[i]=111;
}
}
如果您希望cnew
包含int
值,请将其设置为int
数组。不需要嵌套循环,因为这样您将执行两次相同的操作。两个数组的长度相同,因此它们可以使用一个索引
我还可以提出简短的版本,包括地图:
String s="atgc";
char[] carr=s.toCharArray();
char[] cnew = new char[carr.length];
Map<Character, Integer> mapping = new HashMap<Character, Integer>();
mapping.put('t',101);
mapping.put('a',100);
mapping.put('g',110);// this solution would be better for more letter mappings
for(int i=0;i<len;i++){
if(mapping.containsKey(carr[i])) {
cnew[i]=mapping.get(carr[i]);
} else {
cnew[i]=111;
}
}
String s=“atgc”;
char[]carr=s.toCharArray();
char[]cnew=新字符[carr.length];
Map mapping=newhashmap();
映射。put('t',101);
映射。放置('a',100);
mapping.put('g',110);//此解决方案适用于更多字母映射
对于(inti=0;iIt是使用JDK8流或Guava函数的好地方,因为简而言之,此方法用于将字符串转换为int数组:)
String s="atgc";
char[] carr=s.toCharArray();
char[] cnew = new char[carr.length];
Map<Character, Integer> mapping = new HashMap<Character, Integer>();
mapping.put('t',101);
mapping.put('a',100);
mapping.put('g',110);// this solution would be better for more letter mappings
for(int i=0;i<len;i++){
if(mapping.containsKey(carr[i])) {
cnew[i]=mapping.get(carr[i]);
} else {
cnew[i]=111;
}
}