8.11 - C# to Java

Objetive

Create a basic C# to Java translator.

It must accept a C# source files, and create an equivalent Java source file. It will receive the file name in the command line, and it must translate at least:

"Main()" into "main( String[] args )"
"string" into "String"
"bool" into "boolean"
"Console.WriteLine" into "System.out.println"
" : " into " extends " if it is in the same line as the word "class" (and any further improvements you may think of, such as strings handling, or converting a ReadLine to a try-catch block).


Solution

using System.IO;
using System;

class CsharpToJava
{
    static void Main(string[] args)
    {          
        if (args.Length < 1)
   name = Console.ReadLine();
        else
   name = args[0];

        StreamReader iFile = File.OpenText(name);
        StreamWriter oFile = File.CreateText(name + ".java");
  
  string line;
        string name;
        do 
  {
            line = iFile.ReadLine();
            
   if (line != null)
            {
                line = line.Replace("bool ", "boolean ");
                line = line.Replace("string ", "String ");
                line = line.Replace("Console.WriteLine", "System.out.println");
           
                oFile.WriteLine(line);
            }

        } while(line != null);

        iFile.Close();
        oFile.Close();
    }
}


Popular Posts