为我的第一次Java考试做好准备并且遇到某个方法的问题。以下问题只是一个将四个方法合并为一个Java文件的方法。
问题:
编写代码以创建一个名为“exam1.txt”的新文件并打印出来 跟随文件到文件:
第一行第二行第三行
这是我到目前为止所做的:
import java.io.FileNotFoundException;
import java.io.PrintWriter;
public class problem2 {
public static void main(String[] args) throws FileNotFoundException {
String exam1 = "Exam1.txt";
PrintWriter printWriter = new PrintWriter(exam1);
for(int n = 0; n < 4; n++){
printWriter.printf("Line %d\n", n);
}
printWriter.close();
}
}
我坚持的是弄清楚如何将数字转换为实际的单词;例如,“1”变为“一”。我对for循环的选择是否正确解决了这个问题?我知道如何通过打印每一行来做很长的路,但我想我会学到正确的方法。
答案 0 :(得分:0)
我坚持的是弄清楚如何将数字转换成数字 实际的话。
这是将数字转换为单词的代码。这将有助于你
import java.util.Scanner;
class NumberToString
{
public enum hundreds {OneHundred, TwoHundred, ThreeHundred, FourHundred, FiveHundred, SixHundred, SevenHundred, EightHundred, NineHundred}
public enum tens {Twenty, Thirty, Forty, Fifty, Sixty, Seventy, Eighty, Ninety}
public enum ones {One, Two, Three, Four, Five, Six, Seven, Eight, Nine}
public enum denom {Thousand, Lakhs, Crores}
public enum splNums { Ten, Eleven, Twelve, Thirteen, Fourteen, Fifteen, Sixteen, Seventeen, Eighteen, Nineteen}
public static String text = "";
public static void main(String[] args)
{
System.out.println("Enter Number to convert into words");
Scanner sc = new Scanner(System.in);
long num = sc.nextInt();
int rem = 0;
int i = 0;
while(num > 0)
{
if(i == 0){
rem = (int) (num % 1000);
printText(rem);
num = num / 1000;
i++;
}
else if(num > 0)
{
rem = (int) (num % 100);
if(rem > 0)
text = denom.values()[i - 1]+ " " + text;
printText(rem);
num = num / 100;
i++;
}
}
if(i > 0)
System.out.println(text);
else
System.out.println("Zero");
}
public static void printText(int num)
{
if(!(num > 9 && num < 19))
{
if(num % 10 > 0)
getOnes(num % 10);
num = num / 10;
if(num % 10 > 0)
getTens(num % 10);
num = num / 10;
if(num > 0)
getHundreds(num);
}
else
{
getSplNums(num % 10);
}
}
public static void getSplNums(int num)
{
text = splNums.values()[num]+ " " + text;
}
public static void getHundreds(int num)
{
text = hundreds.values()[num - 1]+ " " + text;
}
public static void getTens(int num)
{
text = tens.values()[num - 2]+ " " + text;
}
public static void getOnes(int num)
{
text = ones.values()[num - 1]+ " " + text;
}
}
答案 1 :(得分:0)
没有“正确”的方法可以做到这一点,但我建议你将这些问题分开,因为这是一种很好的做法,因为你会进入更高阶的方法。您在这里尝试做两件事:将int转换为String,然后将生成的String格式化为写入文件的一系列行。将这些功能中的每一个放入单独的方法中:一个将int转换为它们的String表示(但最终实现它),另一个执行所有文件编写工作并在流程中调用int转换方法。 / p>
我不同意@ arshajii的声明,也许你应该只写三个println()语句,它们会复制功能(printf()语句的格式会被复制),同时混合关注点。我可能会在我在现实世界中编写的一些代码中做到这一点(取决于具体情况),但这并不是我在编程课程的介绍中接受考试的方式,而不是我建议的一般思维方式。学生只是学习良好的发展实践。
就我所知道的实际问题而言(如何将整数转换为相应的String值),因为你有一组简短明确的值,你可以使用{{3 }} ...