我正在进行一项练习,其中包括在其中使用包含数字的文本文件,并在使用例外时将其翻译为单词。当我的程序从文本文件中读取诸如“1234”之类的数字时,它将输出“1234:One Two Three Four”,我正在创建两个单独的类,一个主类和一个numberTranslator类,主类将包含方法translateNumbersInFile(String filename)并使用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){
}
}
答案 0 :(得分:1)
首先阅读有关扫描仪和正则表达式的内容,我在下面提供了链接。
解决问题,并在需要更多具体帮助时再次询问。
http://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html
How can I read input from the console using the Scanner class in Java?
http://docs.oracle.com/javase/tutorial/essential/regex/
http://www.tutorialspoint.com/java/java_regular_expressions.htm
答案 1 :(得分: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();
}
}