Tôi hiện đang có một file văn bản như sau:Đọc một tập tin văn bản và chuyển đổi chúng thành đa thức
3 5 6 9
3 4 6 7 2
3 5 7 2 5 3
Các tập tin khi đọc vào java sẽ được hiển thị như 3x^5 + 6x^9. Dòng thứ hai sẽ được đọc là 4x^4 + 6x^7 + 2. Không thể hiển thị chương trình của tôi vì tôi không biết cách chuyển đổi các số này thành dạng đó. Tôi hiện chỉ nhận được những con số có khoảng cách giữa chúng khi tôi chạy chương trình.
Dưới đây là những gì tôi đã cố gắng:
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
import javax.swing.JOptionPane;
public class Driver {
public static void main(String[] args) {
try {
@SuppressWarnings("resource")
Scanner myfile = new Scanner(new File("poly.dat"));
Polynomial[] mypolynomial;
mypolynomial = new Polynomial[10];
int index = 0;
if (myfile.hasNext() == true) { //ignore this part
myfile.nextLine();
} else {
System.out.println("Error: File is empty");
return;
}
while (myfile.hasNextLine()) {
mypolynomial[index] = new Polynomial(myfile.nextLine());
index++;
}
String menu = "Please choose a Polynomial \n";
for (int i = 0; i < index; i++) {
menu = menu + i + " " + mypolynomial[i].getNumber() + "\n";
}
String choicemenu = "What do you want to do ? \n " + "A - Display a Polynomial \n "
+ "B - Add two Polynomial \n " + "C - Subtract two Polynoimal \n "
+ "D - Multiply two Polynomial \n ";
String action = JOptionPane.showInputDialog(choicemenu);
if (action.equals("A")) {
int choice = Integer.parseInt(JOptionPane.showInputDialog(menu));
JOptionPane.showMessageDialog(null, mypolynomial[choice]);
}
} catch (FileNotFoundException e) {
System.out.println(" OOOPS - something wrong - maybe the file name is wrong");
}
}
}
public class Polynomial { //Testing the program
String poly;
public Polynomial(String p)
{
poly = p;
}
public String getNumber() {
return poly;
}
public void setNumber(String p)
{
poly=p;
}
public String toString()
{
String result = "The Polynomial is " + poly;
return result;
}
}
Tôi muốn đầu tiên hiển thị các chữ số như đa thức, sau đó tôi cuối cùng muốn thực hiện hoạt động với họ. Ai giúp tôi với?
Cảm ơn bạn đã trả lời của bạn! Có thể bạn có khả năng mở rộng về điều này? Bạn có ý nghĩa gì khi tạo một đa thức String? Tức là khi im đọc dữ liệu vào một mảng? Tôi không quen với boolean isOnSecond là tốt. Bạn có thể đưa ra một ví dụ và giúp tôi khởi động nó không? Tôi xin lỗi, tôi vẫn đang cố nắm bắt những gì đang diễn ra. Cảm ơn bạn mặc dù –
Tôi đã thêm một số mã mẫu để bạn có thể xem. –
Nếu bạn có thể đảm bảo bố cục của tệp, bạn cũng có thể lưu trữ tệp dưới dạng tệp nhị phân và chỉ lặp qua các byte để truy cập nhanh hơn. – Krythic