[英]Write a word in a text file on a specific position in java
我正在編寫一個項目,其中我必須在文本文件中編寫來自MySQL數據庫的問題和標記(問題和標記位於數據庫的不同列中,但位於同一表中)。 在這里,我想在同一位置寫標記,即在每個問題之后垂直對齊。
我嘗試使用\\ t但無法獲得所需的輸出
while(myRs.next()) {
String question = myRs.getString("question");
String marks = myRs.getString("questionMarks");
try {
file.write(question+"\t\t\t\t\t\t\t" + marks + "\n");//write to text file
}
catch(Exception exe) {
System.out.println(exe);
}
System.out.println("Q" + count +". " + question);
}
所需的輸出是:
(單個“。”代表實際輸出中的空格,“ Question1”,“ Question2”,“ Question3”不是實際問題,而是語句)
Q1. Question1.............................4
Q2. Question2.............................4
Q3. Question3.............................5
實際輸出為:
Q1. Question1........................ 4
Q2. Question2................................4
Q3. Question3...........................5
您只需要計算問題的大小,然后將剩余空間添加到您喜歡的行大小即可。
有關重復字符的替代方法,請參見n次添加字符。
int maxlinesize = 40;
int count=0;
while(myRs.next()) {
String question = myRs.getString("question");
String marks = myRs.getString("questionMarks");
count++;
String q="Q"+count+" "+question;
StringBuffer buffer = new StringBuffer();
buffer.append(String.join(q, java.util.Collections.nCopies(maxlinesize - q.length(), " ")))
.append(marks);
try {
file.write(buffer.toString()+ "\n");//write to text file
}
catch(Exception exe) {
System.out.println(exe);
}
}
正如Avi建議的那樣,只需將所有要寫入的問題存儲在ArrayList
。 另外,將標記存儲在另一個ArrayList
。 然后,找到最長的問題的字符串長度,並使用String.format
寫入文本文件。 如下:
ArrayList<String> question1 = new ArrayList<String>();
ArrayList<Integer> marks1 = new ArrayList<Integer>();
int maxLen = 0;
while(myRs.next()) {
String question = myRs.getString("question");
Integer marks = myRs.getInt("questionMarks");
question1.add(question);
marks1.add(marks);
for(int i = 0; i < question1.size(); i++) {
if(question1.get(i).length() > maxLen) {
maxLen = question1.get(i).length();
}
}
int index = 0;
try {
file.write("Q" + count + ". " + String.format("%-"+(1+maxLen)+"s%d\n", question1.get(index), marks1.get(index)));
}
catch(Exception exe) {
System.out.println(exe);
}
`
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.