为什么这里就不能转换了(倒数第二行报错)

import java.util.Random;

public class Exercise6_2_2 {

public static void main(String[] args)

{
// TODO Auto-generated method stub
Random r=new Random();
** char c=r.nextInt(122-65+1)+65;**
System.out.println(c);

}

}

char c=(char)(r.nextInt(122-65+1)+65)
或者
int c=r.nextInt(122-65+1)+65;
System.out.println((char)c);
但是你要注意数字强转的范围别超过了。

你想做什么,r.nextInt为什么要用char接收?

需要强制转换 nextInt()返回的是一个int值

char c = (int)(r.nextInt(122-65+1)+65);

如果你是想随机获取ASCII码为65-122的的字符,那么倒数第二行代码应该这样写:
char c=(char)(r.nextInt(122-65+1)+65);//加上强制转换。