十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
尾端对齐写了2种方法你可以参考 ,建议优先使用方法一.方法二还需要优化
成都创新互联专注于岐山企业网站建设,响应式网站,商城系统网站开发。岐山网站建设公司,为岐山等地区提供建站服务。全流程定制开发,专业设计,全程项目跟踪,成都创新互联专业和态度为您提供的服务
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表示填充的数据
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 因为上次迭代器it已经移到最后了.
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());
}
}
}
输出结果
方法一:
9
10
11
方法二:
#########张三 22
#########大A 9
######Aaron 12
TomandJerry 6
Print.java--打印内容定义 [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="数据表格打印"; 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="打印内容"; public void doPrint(){ try{ m_orientation=PageFormat.PORTRAIT; //设置打印对象,默认纸张 PrinterJob prnJob=PrinterJob.getPrinterJob(); PageFormat pageFormat=prnJob.defaultPage(); pageFormat.setOrientation(m_orientation); m_wPage=(int)(pageFormat.getWidth()); m_hPage=(int)(pageFormat.getHeight()); //将待打印的窗体根据默认纸张设置传入打印对象 prnJob.setPrintable(this,pageFormat); if(!prnJob.printDialog()) return; prnJob.print(); }catch(PrinterException ex){ ex.printStackTrace(); System.err.println("打印错误:"+ex.toString()); } } /** * 初始化打印参数 */ public void initPrintParameter() { } /** *构造打印内容,以送打印机打印 */ public int print(Graphics pg,PageFormat pageFormat, int pageIndex) throws PrinterException{ //初始化打印参数 initPrintParameter(); //将画布设置为页面大小 pg.translate((int)pageFormat.getImageableX(), (int)pageFormat.getImageableY()); int wPage=0; int hPage=0; //根据打印机页面设置调整画布大小 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; //为画布设置颜色和字体 int y=topSpace; pg.setFont(titleFont); pg.setColor(Color.black); //画标题,并使其居中 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(); //计算行高,每页行数,总行数和指定页码的起始行、结束行 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; } /** * 文字排列,坐标在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] 运行方法: javac -d . Print.java java Print 自己运行一下 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;// 数据�?
/**
* 读取Excel文件返回�?��字符串数�?
*/
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导出(你需要引入jxl的jar包)
*/
public class Test {
public static void main(String[] args)
{
Test test = new Test();
test.exportExcel();
}
/**
* 导出(导出到磁盘)
*/
public void exportExcel() {
WritableWorkbook book = null;
try {
// 打开文件
book = Workbook.createWorkbook(new File("D:/测试.xls"));
// 生成名为"学生"的工作表,参数0表示这是第一页
WritableSheet sheet = book.createSheet("学生", 0);
// 指定单元格位置是第一列第一行(0, 0)以及单元格内容为张三
Label label = new Label(0, 0, "张三");
// 将定义好的单元格添加到工作表中
sheet.addCell(label);
// 保存数字的单元格必须使用Number的完整包路径
jxl.write.Number number = new jxl.write.Number(1, 0, 30);
sheet.addCell(number);
// 写入数据并关闭文件
book.write();
} catch (Exception e) {
System.out.println(e);
}finally{
if(book!=null){
try {
book.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
}
用两个for循环,一个参数递增,另一个参数递减,代码如下:
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();
}
运行结果如下:
扩展资料:
Java中有三种主要的循环结构:
1、while 循环
while是最基本的循环,它的结构为:
while( 布尔表达式 ) {
//循环内容}
只要布尔表达式为 true,循环就会一直执行下去。
2、do…while 循环
对于 while 语句而言,如果不满足条件,则不能进入循环。但有时候我们需要即使不满足条件,也至少执行一次。
do…while 循环和 while 循环相似,不同的是,do…while 循环至少会执行一次。
do {
//代码语句}while(布尔表达式);
3、for 循环
for循环执行的次数是在执行前就确定的。语法格式如下:
for(初始化; 布尔表达式; 更新) {
//代码语句}
参考资料:
Oracle官方API接口-Java™ Platform, Standard Edition 7API Specification
W3cSchool-Java 循环结构 - for, while 及 do…while