使用的编译器是IntelliJ IDEA4.5,学习用,别抓我盗版阿~!!
问题描述在注释里,请高人释疑!
import java.util.Random;/**
 * Created by IntelliJ IDEA.
 * User: 刘德华
 * Date: 2005-6-2
 * Time: 0:33:03
 * To change this template use File | Settings | File Templates.
 */
public class RandomStringGenerator {    private String str="";
    int addRange(char a,char b){
        int z=b-a;
        return z;
    }    String nextString(int i) {
        int size;
        Random random;
        size=addRange('a','z');
        random=new Random();
        for(int j=0;j<i;j++) {
        //    random=new Random();   这句话放循环内,那么将会导致结果(str)全是同一个字符,
        // 但是单步执行则可以生成不同的字符串,好奇怪的一个问题!单步执行和普通执行程序的结果不一样,郁闷呢了!
        // 这句话放在放在循环外头则不会出现这种情况            int r = random.nextInt(size);
            r=97+r;
            str=str+(char)r;
        }
        return str;
    }    /**
     * The main method
     *
     * @param args unused
     */
    public static void main(String[] args) throws NullPointerException {
        RandomStringGenerator generator=new RandomStringGenerator();
        String s=generator.nextString(10);
        System.out.println("s is "+s);
    }
}