2014-02-28 51 views
-2

我正在进行一项练习,其中包括使用带有数字的文本文件并在使用例外时将其翻译为单词。当我的程序从文本文件中读取一个如“1234”的数字时,它会输出“1234:One Two Three Four”,我做了两个独立的类,一个主类和一个numberTranslator类,主类将包含一个方法translateNumbersInFile(字符串文件名),它将使用Scanner tokenizer和选定的文件打开文件名,而我的numberTranslator类将包含translate()方法,该方法将字符串转换为单独的整数。翻译文本文件中的数字

我从来没有使用过扫描仪标记器,并且不熟悉用它打开文件。此外,不知道如何将字符串拆分为单独的数字。任何帮助都非常感谢,我现在很失落..

只需要添加:我需要将数字分解为其个别数字,因此将每个数字转换为其文本表示,然后将它们与最终文本字符串。

这是我单独的课,谢谢。

package hw05; 

import java.io.File; 
import java.util.Scanner; 


public class Main { 


public static void main(String[] args) { 


} 
public translateNumbersInFile(String filename){ 

} 

} 

这是我的NumberTranslator类, 包hw05;

public class NumberTranslator extends Main { 

public String translate(int number){ 


} 

} 
+1

你有看的JavaDoc?谷歌搜索的例子?它看起来并没有像你的问题中的代码那么努力。 – SimonC

+1

这个问题会更好地分成多个问题。 –

+0

http://ideone.com/dR5nSp – aroth

回答

0
import java.io.File; 
import java.io.FileNotFoundException; 
import java.util.Scanner; 

public class test { 
private static final String[] stringarray = { "zero", "one", "two", "three", 
     "four", "five", "six", "seven", "eight", "nine" }; 

public static void main(String[] args) { 
    System.out.println("Please enter your file path:"); 
    Scanner scanner = new Scanner(System.in); 
    String filepath = scanner.nextLine(); 
    // String result = translateNumbersInFile("C:/numtxt.txt"); 
    String result = translateNumbersInFile(filepath); 
    System.out.println(result); 
} 

public static String translateNumbersInFile(String filepath) { 
    StringBuffer sb = new StringBuffer(); 
    File file = new File(filepath); 
    try { 
     Scanner sc = new Scanner(file); 
     while (sc.hasNextLine()) { 
      String oneline = sc.nextLine(); 
      for (int i = 0; i < 10; i++) { 
       oneline = oneline.replaceAll(i + "", " " +  stringarray[i] 
         + " "); 
      } 
      sb.append(oneline + "\n"); 
     } 
    } catch (FileNotFoundException e) { 
     System.out.println("erro filepath!"); 
     e.printStackTrace(); 
    } 
    return sb.toString(); 
} 
} 
+0

你可能想尝试解释为什么你的答案。 – Dan