我的程序输出错误

时间:2015-05-25 01:13:18

标签: java

当我运行它时,计算机仅计算1 3 5 7 9 ...索引。例如,如果我输入" Hello&#34 ;,计算机计数1-H,1-l和1 o,它不会计算e和l(第4个索引)。 这有什么问题?

File javaFile = new File( "test1.java" );
String code = entry.getText(); // get text entered by user in GUI
try{
  PrintWriter writer = new PrintWriter( javaFile );  // write text to .java file  
  writer.print( code );
  writer.close();
}
catch( FileNotFoundException e ){
  System.err.println( e );
}
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
List<File> sourceFileList = new ArrayList<File>();
sourceFileList.add( javaFile );
StandardJavaFileManager fileManager = compiler.getStandardFileManager( null, null, null );
Iterable<? extends JavaFileObject> javaSource = fileManager.getJavaFileObjectsFromFiles( sourceFileList );
CompilationTask task = compiler.getTask(null, fileManager, null, null, null, javaSource);
task.call(); // compile .java file into .class file

2 个答案:

答案 0 :(得分:3)

它基本归结为:

file2.h

在其中增加for (int ch = 0; ch < line.length(); ch++) { // Increment per iteration doSomething(); ch++; // Increment within body } 两次!

你需要摆脱其中一个,因为通常的方法是使用已知的预先迭代次数进行ch循环,这样就可以将控制变量修改为{{1语句本身,我建议摆脱循环体中的那个:

for

答案 1 :(得分:0)

我认为你在表达结束和for循环结束时增加了两次ch。