我有一个二进制字符串,我将其转换为字符数组 为修改目的。我想要做的是在一个随机生成的索引p, 查看该元素,如果它是0使它为1,并且如果1使其为0 .... 它适用于转换1,但它不适用于将0转换为1!我可以修改我的字符数组中的一个元素,但我不能修改另一个
public class CS2004
{
//Shared random object
static private Random rand;
//Create a uniformly distributed random integer between aa and bb inclusive
static public int UI(int aa,int bb)
{
int a = Math.min(aa,bb);
int b = Math.max(aa,bb);
if (rand == null)
{
rand = new Random();
rand.setSeed(System.nanoTime());
}
int d = b - a + 1;
int x = rand.nextInt(d) + a;
return(x);
}
public class ScalesSolution
{
private String scasol;
public void SmallChange(){
int p;
int n = scasol.length();
// converts the string into a char array so that we can access and modify it
char [] y = scasol.toCharArray();
// random integer p that ranges between 0 and n-1 inclusively
p = CS2004.UI(0,(n-1));
System.out.println(p);
// we changing the element at index p from 0 to 1 , or from 1 to 0
// cant convert from 0 to 1 !!!!! yet, it works for converting 1 to 0!
if(y[p] == 0){
y[p] = '1';
} else {
y[p] = '0';
}
// Now we can convert the char array back to a string
scasol = String.valueOf(y);
}
public void println()
{
System.out.println(scasol);
System.out.println();
}
}
public class Lab9 {
public static void main(String[] args) {
String s = "1100";
ScalesSolution solution = new ScalesSolution(s);
solution.println();
// FLIPPING THE '1' BUT NOT FLIPPING THE '0'
solution.SmallChange();
solution.println();
}
}
尝试把单引号放在'if(y [p] =='0')' – Joqus
谢谢!我看不到这一点真是愚蠢! – omark1985