有字符串"00000000"如何写一段代码将该字符串的任一位修改为1那
[b]问题补充:[/b]
我的意思是:有一个字符串"1,2,3,4"根据字符串中的每个逗号分隔的数字,确定字符串中将0变为1的位置。如"1,2,3,4"就是将"00000000"字符串变为"01111000"
[b]问题补充:[/b]
to ext:Arrays.fill举个例子先,好像不太好用。
[code="java"]
public static void main(String[] args) {
String s = "00000000";
String s2 = "1,2,3";
System.out.println(r(s, s2));
}
public static String r(String s, String s2) {
String[] t = s2.split(",");
for (int i = 0; i < t.length; i++) {
int pos = Integer.parseInt(t[i]);
s = s.substring(0, pos - 1) + "1" + s.substring(pos, s.length());
}
return s;
}
[/code]
PS:我这是很土的办法,楼上ext给出的代码非常精炼,建议楼主仔细瞧瞧.
[code="java"]
public static String r(String s, int pos) {
if (pos > s.length() || pos < 0)
return s;
return s.substring(0, pos-1) + "1" + s.substring(pos, s.length());
}
[/code]
[code="java"]
public static void main(String[] args) {
String s = "00000000";
System.out.println(r(s,4));
}
[/code]
Arrays.fill(s.tocharArray(),start,start+1,val)
将指定的 val 引用分配给指定 数组指定范围中的每个元素。
[code="java"]
public static void main(String[] args) {
final String repStr ="1";
String s = "00000000";
String pos = "1,2,3,4";
char replChar = repStr.toCharArray()[0];
int replLength = pos.split(",").length;
//这里写一堆判断条件
if (sortArr.length <= 0) {
return;
}
// Arrays.sort(sortArr);
// 取得开始替换位置 如果pos 比较复杂 或者不是连续的数字
//建议写一个小方法 或者 后面循环 调用fill 方法
int startChar = Integer.parseInt(pos.split(",")[0]);
char[] sChar = s.toCharArray();
Arrays.fill(sChar,startChar,startChar+replaceLength,replChar );
System.out.println(sChar.toString());
}
[/code]
ps:格式怎么排也排不好。。。 8)
简单的写了一下。
lz 试着看下吧。。