尾端對齊寫了2種方法你可以參考 ,建議優(yōu)先使用方法一.方法二還需要優(yōu)化
成都創(chuàng)新互聯(lián)專注于岐山企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站,商城系統(tǒng)網(wǎng)站開發(fā)。岐山網(wǎng)站建設(shè)公司,為岐山等地區(qū)提供建站服務(wù)。全流程定制開發(fā),專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,成都創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)
import?java.util.Hashtable;
import?java.util.Iterator;
import?java.util.Map.Entry;
public?class?PrintNameDemo?{
public?static?void?main(String[]?args)?throws?Exception?{
//?普通情況,比如已知名字最大不超過15個字符,
System.out.println("方法一:");
for?(int?i?=?9;?i?12;?i++)?{
//注意這里是printf()表示格式化輸出%15s?表示15個空格??i表示填充的數(shù)據(jù)?
System.out.printf("%15s",?i);
//換行
System.out.println();
}
System.out.println("方法二:");
HashtableString,?Integer?table?=?new?Hashtable();
table.put("Aaron",?12);
table.put("張三",?22);
table.put("大A",?9);
table.put("TomandJerry",?6);
IteratorEntryString,?Integer?it?=?table.entrySet().iterator();
int?maxLen?=?0;
while?(it.hasNext())?{
int?temp?=?it.next().getKey().length();
if?(temp??maxLen)?{
maxLen?=?temp;//找到table里名字最長的有多少位字符
}
}
//重新獲得下Iterator?因?yàn)樯洗蔚鱥t已經(jīng)移到最后了.
it?=?table.entrySet().iterator();
while?(it.hasNext())?{
EntryString,?Integer?e?=?it.next();
//這里才是方法二尾端對齊的核心代碼
char[]?cc?=?new?char[maxLen];
//for?(int?i?=?0;?i??cc.length;?i++)?{
// cc[i]?=?'#';
//}
char[]?cs?=?e.getKey().toCharArray();
int?x?=?0;
//覆蓋最后的幾個字符
for?(int?i?=?maxLen?-?cs.length;?i??cc.length;?i++)?{
cc[i]?=?cs[x];
x++;
}
System.out.println(new?String(cc)?+?"\t"?+?e.getValue());
}
}
}
輸出結(jié)果
方法一:
9
10
11
方法二:
#########張三 22
#########大A 9
######Aaron 12
TomandJerry 6
Print.java--打印內(nèi)容定義 [code] import java.awt.*; import java.awt.event.*; import java.awt.print.*; import java.awt.image.*; import javax.swing.*; import javax.swing.event.*; import javax.swing.border.*; import javax.swing.event.*; import java.util.*; import java.io.*; public class Print implements Printable{ int m_wPage; int m_hPage; int m_orientation; Printable m_target; int maxNumPage=1; String title="數(shù)據(jù)表格打印"; Font titleFont=new Font("黑體",Font.BOLD,14); boolean hasTail=true; int tailAlign=0; int headAlign=0; int topSpace=0; int leftSpace=0; int yStart=0; int yEnd=0; int xStart=topSpace; int xEnd=0; int x=0,y=0; String strTemp="打印內(nèi)容"; public void doPrint(){ try{ m_orientation=PageFormat.PORTRAIT; //設(shè)置打印對象,默認(rèn)紙張 PrinterJob prnJob=PrinterJob.getPrinterJob(); PageFormat pageFormat=prnJob.defaultPage(); pageFormat.setOrientation(m_orientation); m_wPage=(int)(pageFormat.getWidth()); m_hPage=(int)(pageFormat.getHeight()); //將待打印的窗體根據(jù)默認(rèn)紙張?jiān)O(shè)置傳入打印對象 prnJob.setPrintable(this,pageFormat); if(!prnJob.printDialog()) return; prnJob.print(); }catch(PrinterException ex){ ex.printStackTrace(); System.err.println("打印錯誤:"+ex.toString()); } } /** * 初始化打印參數(shù) */ public void initPrintParameter() { } /** *構(gòu)造打印內(nèi)容,以送打印機(jī)打印 */ public int print(Graphics pg,PageFormat pageFormat, int pageIndex) throws PrinterException{ //初始化打印參數(shù) initPrintParameter(); //將畫布設(shè)置為頁面大小 pg.translate((int)pageFormat.getImageableX(), (int)pageFormat.getImageableY()); int wPage=0; int hPage=0; //根據(jù)打印機(jī)頁面設(shè)置調(diào)整畫布大小 if(pageFormat.getOrientation()==pageFormat.PORTRAIT){ wPage=(int)pageFormat.getImageableWidth(); hPage=(int)pageFormat.getImageableHeight(); } else{ wPage=(int)pageFormat.getImageableWidth(); wPage+=wPage/2; hPage=(int)pageFormat.getImageableHeight(); pg.setClip(0,0,wPage,hPage); } wPage=wPage-2*leftSpace; hPage=hPage-2*topSpace; xStart=leftSpace; xEnd=wPage-2; //為畫布設(shè)置顏色和字體 int y=topSpace; pg.setFont(titleFont); pg.setColor(Color.black); //畫標(biāo)題,并使其居中 Font fn=pg.getFont(); FontMetrics fm=pg.getFontMetrics(); y+=fm.getAscent(); alignText(title,pg,y,xStart,xEnd,headAlign); y+=30; x=leftSpace+2; Font headerFont=new Font("宋體",Font.BOLD,14); pg.setFont(headerFont); fm=pg.getFontMetrics(); int h=fm.getAscent(); yStart=y-1; y+=h; pg.setFont(headerFont); fm=pg.getFontMetrics(); int header=y; h=fm.getHeight(); //計(jì)算行高,每頁行數(shù),總行數(shù)和指定頁碼的起始行、結(jié)束行 int rowH=Math.max(h,10); int tailH=rowH+30; int rowPerPage=0; int leftPix=0; if(hasTail){ rowPerPage=(hPage-header-tailH)/rowH; leftPix=(hPage-header-tailH)%rowH; yEnd=hPage-leftPix-tailH+2; } else{ rowPerPage=(hPage-header)/rowH; leftPix=(hPage-header)%rowH; yEnd=hPage-leftPix+2; } pg.drawString(strTemp,x,y); //畫表格邊框 pg.drawLine(xStart,yStart,xStart,yEnd); pg.drawLine(xStart,yStart,xEnd,yStart); pg.drawLine(xEnd,yStart,xEnd,yEnd); pg.drawLine(xStart,yEnd,xEnd,yEnd); //打印頁碼 if(hasTail){ int pageNumber=pageIndex+1; String s="第"+pageNumber+"頁"; alignText(s,pg,yEnd+30,xStart,xEnd,tailAlign); } System.gc(); return PAGE_EXISTS; } /** * 文字排列,坐標(biāo)在y處,顯示范圍(start-end) * 0表示居中顯示,1表示左對齊,2表示右對齊 */ private void alignText(String s,Graphics pg,int y,int start, int end,int mode){ Font fn=pg.getFont(); FontMetrics fm=pg.getFontMetrics(); int wString=fm.stringWidth(s); int x=start; switch(mode) { case 0: if((end-start-wString)0) x=start+(end-start-wString)/2; break; case 1: break; case 2: if((end-start-wString)0) x=start+(end-start-wString); break; } pg.drawString(s,x,y); } public static void main(String[] args){ Print p=new Print(); p.doPrint(); } } [code] 運(yùn)行方法: javac -d . Print.java java Print 自己運(yùn)行一下 from:
采納哦
import java.io.FileInputStream;
import java.io.InputStream;
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
public class ReadExcel {
private Workbook workbook;// 包含的表
private Sheet sheet;// 讀出第一個表
private Cell cell;// ??
private InputStream is;// 數(shù)據(jù)??
/**
* 讀取Excel文件返回????字符串?dāng)?shù)??
*/
public String[][] read(String filename) {
String[][] temp = null;
try {
is = new FileInputStream(filename);
workbook = Workbook.getWorkbook(is);
// 獲得第一個工作表對象
sheet = workbook.getSheet(0);
// 得到第一列第????的單元格
int i = 0;
int j = 0;
int rows = sheet.getRows();
int columns = sheet.getColumns();
temp = new String[rows][columns];
for (i = 0; i rows; i++) {
for (j = 0; j columns; j++) {
cell = sheet.getCell(j, i);
temp[i][j] = cell.getContents();
}
}
} catch (Exception e) {
e.printStackTrace();
}
return temp;
}
}
后面的自己寫
import?java.io.File;
import?jxl.Workbook;
import?jxl.write.Label;
import?jxl.write.WritableSheet;
import?jxl.write.WritableWorkbook;
/**
*?Excel導(dǎo)出(你需要引入jxl的jar包)
*/
public?class?Test?{
public?static?void?main(String[]?args)
{
Test?test?=?new?Test();
test.exportExcel();
}
/**
*?導(dǎo)出(導(dǎo)出到磁盤)
*/
public?void?exportExcel()?{
WritableWorkbook?book?=?null;
try?{
//?打開文件
book?=?Workbook.createWorkbook(new?File("D:/測試.xls"));
//?生成名為"學(xué)生"的工作表,參數(shù)0表示這是第一頁
WritableSheet?sheet?=?book.createSheet("學(xué)生",?0);
//?指定單元格位置是第一列第一行(0,?0)以及單元格內(nèi)容為張三
Label?label?=?new?Label(0,?0,?"張三");
//?將定義好的單元格添加到工作表中
sheet.addCell(label);
//?保存數(shù)字的單元格必須使用Number的完整包路徑
jxl.write.Number?number?=?new?jxl.write.Number(1,?0,?30);
sheet.addCell(number);
//?寫入數(shù)據(jù)并關(guān)閉文件
book.write();
}?catch?(Exception?e)?{
System.out.println(e);
}finally{
if(book!=null){
try?{
book.close();
}?catch?(Exception?e)?{
e.printStackTrace();
}?
}
}
}
}
用兩個for循環(huán),一個參數(shù)遞增,另一個參數(shù)遞減,代碼如下:
public static void main(String[] args){
for (int i = 1; i = 9; i++){
for(int n = 1; n = i; n++) {
System.out.print( i + " x " + n + " = " + i * n + "\t");
}
System.out.println();
}
運(yùn)行結(jié)果如下:
擴(kuò)展資料:
Java中有三種主要的循環(huán)結(jié)構(gòu):
1、while?循環(huán)
while是最基本的循環(huán),它的結(jié)構(gòu)為:
while( 布爾表達(dá)式 ) {
//循環(huán)內(nèi)容}
只要布爾表達(dá)式為 true,循環(huán)就會一直執(zhí)行下去。
2、do…while?循環(huán)
對于 while 語句而言,如果不滿足條件,則不能進(jìn)入循環(huán)。但有時候我們需要即使不滿足條件,也至少執(zhí)行一次。
do…while 循環(huán)和 while 循環(huán)相似,不同的是,do…while 循環(huán)至少會執(zhí)行一次。
do {
//代碼語句}while(布爾表達(dá)式);
3、for?循環(huán)
for循環(huán)執(zhí)行的次數(shù)是在執(zhí)行前就確定的。語法格式如下:
for(初始化; 布爾表達(dá)式; 更新) {
//代碼語句}
參考資料:
Oracle官方API接口-Java? Platform, Standard Edition 7API Specification
W3cSchool-Java 循環(huán)結(jié)構(gòu) - for, while 及 do…while
名稱欄目:打印表格java代碼,java打印制表符
本文URL:http://jinyejixie.com/article28/dssdsjp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營銷、虛擬主機(jī)、網(wǎng)站設(shè)計(jì)公司、App設(shè)計(jì)、服務(wù)器托管、做網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)