출력 파일에 내 출력을 쓰는 방법을 완전히 고수했습니다. 희망적으로 나 자신을 더 명확하게하기 위해 아래에 몇 가지 정보를 제공했습니다. 나를 도울 수있는 누군가에게 감사드립니다.배열을 파일에 쓰려면 어떻게해야합니까?
1234 입력 (I이이 txt 파일에 기록 할 필요)입니다 출력 : 현재 txt 파일에 기록되는 내용
Your original number was:
1234
The reversed digits are:
4321
The even digits are:
2 4
The odd digits are:
1 3
가 : 여기
Your original number was:
1234
이 내 지금 당장 :
import java.util.Scanner;
import java.io.*;
public class order {
//Input validation. Allows any integer greater than 0. Any number starting
with 0 is invalid.
private static void validate(Scanner input) {
String userEntry;
System.out.println("Please enter a positive integer greater than 0.");
userEntry = input.nextLine();
while (!userEntry.matches("^[1-9][0-9]*$")) {
System.out.println("Invalid number. Try again");
userEntry = input.nextLine();
}
try {
FileWriter writer = new FileWriter("outDataFile.txt", true);
PrintWriter outputfile = new PrintWriter(writer);
outputfile.println("Your original number was: ");
outputfile.println(userEntry);
System.out.println("Your original number was: ");
System.out.println(userEntry);
System.out.println("The reversed digits are: ");
reverse (input, userEntry);
System.out.println();
System.out.println("The even digits are: ");
even (input, userEntry);
System.out.println();
System.out.println("The odd digits are: ");
odd (input, userEntry);
System.out.println();
} catch (IOException e){
}
}
//Reverses the order of digits.
public static void reverse(Scanner keyboard, String intString) {
int strsize = intString.length();
int[] digits = new int[strsize];
for (int i = 0; i < strsize; ++i)
{
String temp = Character.toString(intString.charAt(i));
digits[i] = Integer.parseInt(temp);
}
for (int i = strsize - 1; i >= 0; --i)
{
System.out.print(digits[i]);
}
}
//Extracts even numbers.
public static void even (Scanner keyboard2, String intString2) {
int strsize2 = intString2.length();
int[] digits2 = new int[strsize2];
for (int i = 0 ; i < strsize2 ; ++i) {
String temp = Character.toString(intString2.charAt(i));
digits2[i] = Integer.parseInt(temp);
if(digits2[i] % 2 == 0) {
System.out.print(digits2[i] + " ");
}
}
}
//Extracts odd numbers.
public static void odd (Scanner keyboard3, String intString3) {
int strsize3 = intString3.length();
int[] digits3 = new int[strsize3];
for (int i = 0 ; i < strsize3 ; ++i) {
String temp = Character.toString(intString3.charAt(i));
digits3[i] = Integer.parseInt(temp);
if(digits3[i] % 2 != 0) {
System.out.print(digits3[i] + " ");
}
}
}
//Allows continuous input.
public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in);
boolean validate = true;
while (validate) {
validate(keyboard);
boolean invalid = true;
while (invalid) {
System.out.println("Would you like to try another calculation? [y/n]");
Scanner input = new Scanner(System.in);
char answer;
String option = input.next();
if ("y".equalsIgnoreCase(option)) {
invalid = false;
}
else if ("n".equalsIgnoreCase(option)) {
invalid = false;
validate = false;
System.out.println("Goodbye.");
input.close();
}
else {
System.err.println("The only valid answers are y/n.");
System.out.println();
}
}
}
}
}
'PrintWriter'를 사용하여 원래 번호 이외의 것을 인쇄하지 마십시오. 따라서 이것은 출력 파일에서 모두 볼 수 있습니다. –
스택 오버플로에 오신 것을 환영합니다! 나는이 코드의 95 %가 귀하의 질문과 관련이 없다고 생각합니다. 문제를 나타내는 [** Minimal **, Complete and Verifiable Example] (http://stackoverflow.com/help/mcve)을 만드십시오. –
'System.out'의 결과는 예상 한 것입니까? 그렇다면'PrintWriter'를 다른 메소드에 전달하고 첫 번째 라인과 같은 방식으로 작성하지 않으시겠습니까? – petehallw