【发布时间】:2018-03-30 19:27:03
【问题描述】:
我需要将我在MovieList中随便挑的一个词替换成下划线“___”,我想创建一个新方法来处理它,新方法应该在guessMovies类下,然后我会调用下"object r" 将每个单词替换为下划线,但 Java 说它找不到符号(它不知道 "r" 是什么)。请帮忙。
谢谢
我将对象 r 置于 try/catch 范围之外,并使用此代码
String movieToReplace = MovieNames.get(r.nextInt(MovieNames.size()));
System.out.println(movieToReplace);
MovieList.replaceAll(movieToReplace, "_");
但似乎它仍然给了我随机的电影名称,而不是下划线“_”
public class guessMovies {
private static Random randomGenerator;
public static void main(String[] args) throws IOException {
String MovieList;
ArrayList<String> MovieNames = new ArrayList<>();
Random r = new Random();
try (BufferedReader br = new BufferedReader(new FileReader("MovieList.txt"))) {
while ((MovieList = br.readLine()) != null) {
MovieNames.add(MovieList);
}
for(String movieName: MovieNames){
System.out.println(movieName);
}
String movieToReplace = MovieNames.get(r.nextInt(MovieNames.size()));
System.out.println(movieToReplace);
MovieList.replaceAll(movieToReplace, "____");
}
catch(FileNotFoundException exception) {
System.out.println("I cannot find your file");
}
//pick random movie
}
}
错误:
Error:(38, 14) java: cannot find symbol
符号:方法 replaceAll(java.lang.String,java.lang.String) 位置:java.util.Random 类型的变量 r
【问题讨论】:
-
请发布编译器错误。
-
btw 变量名用驼峰式书写,但第一个字母为小写:
movieNames而不是MovieNames -
您是否导入了 Random?
import java.util.Random; -
您正在对您的
Random对象调用replaceAll。r.replaceAll("/[a-z0-9. ]/", "__");