public class AvoidFile_old {
public static void main(String[] args) {
String filepath = "d:/Test/myFiletxt";
/
args 这个字符串数组是保存运行main函数时输入的参数,也就是说你编译好了文件是这样运行的java AvoidFile_old xx yy
这表示你有两个参数:xx和yy args[0]为xx args[1]为yy
如果args的长度大于0,也就是说args数组中有字符串
那么就把args数组中的第一个字符串赋值给filepath
如果你没有在运行时输入参数,就是简单的运行的话此数组为空if下的语句不执行
我认为这段程序有点无厘头,就整个程序而言没有什么意义,可以不考虑,可能整个程序作为模块还有其他作用
/
if(argslength>0) {
filepath = args[0];
}
//通过将给定路径名字符串转换为抽象路径名aFile(aFile的值为d:/Test/myFiletxt)
//来创建一个新 File 实例。抽象路径名可以理解为输入的d:/Test/myFiletxt
File aFile = new File(filepath);
//FileOutputStream用于写入诸如图像数据之类的原始字节的流
FileOutputStream outputFile = null;
//判断此抽象路径名表示的文件是否是一个标准文件
if (aFileisFile()) {
//如果是,创建一个newFile就为此标准文件 此时抽象路径名newFile为d:/Test/myFiletxt
File newFile = aFile;
do {
//返回由此抽象路径名表示的文件名称给name。此时得到的name的值为myFiletxt
String name = newFilegetName();
//返回name中""第一次出现处的索引给period,即myFiletxt根据索引到的位置period为6(从0开始数)
int period = nameindexOf('');
if(period == -1) {
//period == -1表示给定的文件名不存在(表示你定义的String filepath = "d:/Test/txt";是这样的或更不全)
/ newFile = new File(newFilegetParent(), extendName(name));表示
extendName(name)请看程序下段private static String extendName(String name)的方法
newFilegetParent()得到的是父目录,如果你输入的filepath = "d:/Test/txt"
那么父目录为d:/Test
根据 parent(即newFilegetParent())路径名字符串和 child(extendName)路径名字符串创建一个新 File 实例
此时创建的实例文件所在路径为d:/Test/extendName(name)txt
/
newFile = new File(newFilegetParent(), extendName(name));
} else {
/ 如果文件名不为空的话,
根据 parent(newFilegetParent())路径名字符串和 child(extendName) 路径名字符串创建一个新 File 实例
newFilegetParent()返回newFile父目录的路径名字符串即d:/Test
extendName()得到的是文件名+点,"d:/Test/myFiletxt"就是"myFile"
namesubstring(0, period))+ namesubstring(period))表示
返回字符串name=myFiletxt的一个子字符串。该子字符串从指定的0处开始,直到索引最后位 - 1 处的字符第一次创建时
为myFile,第二次源目录创建时为myFile000
再+namesubstring(period)得到一个
/
newFile = new File(newFilegetParent(),
extendName(namesubstring(0, period))
+ namesubstring(period));
}
//如果aFile没有重新命名为newFile抽象路径名表示的文件,则循环上面的 *** 作
} while(!aFilerenameTo(newFile));
}
try {
//文件已经创建则输出文件名
outputFile = new FileOutputStream(aFile);
Systemoutprintln(aFilegetName()+" output stream created");
} catch (FileNotFoundException e) {
eprintStackTrace(Systemerr);
}
Systemexit(0);
}
//定义方法extendName
private static String extendName(String name) {
//把newName定义为动态可变字符串,这样newName可以随时改变,比如下面的newNamedelete()方法
StringBuffer newName = new StringBuffer(name);
//获得digits是newName中除点之外的后三位字符串(因为name是文件名加点在上面已经讲了)
//substring方法返回的是 从指定的 beginIndex 处开始,直到索引 endIndex - 1 处的字符
//所以点 就不包在digits中,获得的是纯文件名
String digits = newNamesubstring(newNamelength()-3,newNamelength());
int number = 0;
try {
/此段程序为整个程序的最精彩之处,把digits转化为整型number,
如果在原路径中创建了一个同名时,会自动在文件明后加上000
然后通过下面这段程序在000上进行递增即++number
/
number = IntegerparseInt(digits);
++number;
newNamedelete(newNamelength()-3,newNamelength());
} catch(NumberFormatException nfe) {
}
//吧number转化为字符串型
digits = StringvalueOf(number);
//做声明
assert digitslength() < 4;
/
/
return newNameappend("000")replace(newNamelength()-digitslength(),newNamelength(), digits)toString();
}
}
//注:你必须在c盘中有Test文件夹存在才能运行,如果多次运行改程序那么在你的d:\Test文件夹下有myFile00txt文件
它的思路是这样的
譬如对于i=1,它先打印6个空格,然后打印1个星号
即就是对于每一个i,先打印这一行对应的空格号,然后打印星号
你后面的代码一样的效果,先根据行数打印对应的空格数,然后补上星号
其实你不用考虑位置的,因为你每一行都是缩进1个空格,即就是下一行的开始星号一行比前一行提前一个字符的位置。所以那些位置必然居中的,好看期间,你可以改一下就好看多了。。for(int i=1;i<=7;i++){
//代码
import javautil;
public class Test {
public static void main(String[] args) {
Scanner sc=new Scanner(Systemin);
int t,n=scnextInt(),l=2n-1;
for(int i=1-n;i<n;i++)
{
t=Mathabs(i);
for(int j=0;j<l;j++)
{
if(j==t||j==l-t-1)
Systemoutprint("");
else
Systemoutprint(" ");
}
Systemoutprintln();
}
scclose();
}
}
public class Diamond {
public static void main(String[] args) {
final int size = 4;
for (int i = 1; i <= size; i++) {
for (int j = i; j < size; j++) {
Systemoutprint(" ");
}
for (int k = 1; k <= 2 i - 1; k++) {
Systemoutprint("");
}
Systemoutprintln();
}
for (int i = size - 1; i >= 1; i--) {
for (int j = 1; j <= size - i; j++) {
Systemoutprint(" ");
}
for (int k = 2 i - 1; k > 0; k--) {
Systemoutprint("");
}
Systemoutprintln();
}
}
}
------------------------
以上就是关于java方面 是个打印菱形的程序,本人是新手不太理解,求高手注释,详细解释一下,谢了!全部的内容,包括:java方面 是个打印菱形的程序,本人是新手不太理解,求高手注释,详细解释一下,谢了!、一个用JAVA如何打印菱形的程序、java编写程序,读入正整数n,n<10,打印边长为n的,用*组成的菱形轮廓等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)