⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 list1.java

📁 这是一个汉诺塔程序
💻 JAVA
字号:
/**
 *@Author handazhi
 *@version 1.3
 *Write for list!
 */
import  java.io.*;
import  java.util.*;
//需要和GUI相结,看一下printList()and getFieName()
class List1{
      /* Standard input stream */
	private static BufferedReader  stdIn =
			new BufferedReader(new  InputStreamReader(System.in));

	/* Standard output stream */
	private static PrintWriter  stdOut =
			new PrintWriter(System.out, true);

 	/* Standard error stream */
	private static PrintWriter  stdErr =
			new PrintWriter(System.err, true);
	private static String [] name = new String [5];
	private static int [] times = new int [5];
	private static int [] steps = new int [5];
	private String sname = "";
	private static String fileName = "";
	/**
	 *@param  a string for initialization
	 *
	 */
	List1(String sname){
		this.sname = sname;
	}
	List1(){}
		
  String readFromFile(){
  	String s = "",line = "";
  	try{
  	
  	BufferedReader fileIn =
    new BufferedReader(new FileReader(getFileName()));// need modifying
   
    
    while(line!=null){
    	line = fileIn.readLine();
    	if(line==null){
    		break;//xinjia!
    	}
    	s += line;
    }
    fileIn.close();
    }catch(IOException ioe){
    	System.out.println("error1");//!
    }
    catch(Exception e){
    	System.out.println("error2");//!
    	System.exit(0);
    }
    	
    
    	return s;
    }
    void initializationarrays(){
    	StringTokenizer bigToken = new  StringTokenizer(readFromFile(),"_");
    	//bigToken must like this "name1_name2..." as a string
    	//namei is not really neae ,it is like "name steps times "as a string.
    	for(int i = 0;bigToken.hasMoreTokens();i++){
    		
    		name[i] = bigToken.nextToken();
    	//	System.out.println("name["+i+"]"+name[i]);
    		
    	}
    	//StringTokenizer smallToken = new StringTokenizer(readFromFile()," ")
    	for (int j = 0, t=0,s = 0;j<name.length;j++){
    		StringTokenizer smallToken = new StringTokenizer(name[j]," ");
    		smallToken.nextToken();
    		for(;smallToken.hasMoreTokens();t++,s++){
    			steps[s] = Integer.parseInt(smallToken.nextToken());
    		//	System.out.println(steps[s]);/*for test*/
    			times[t] = Integer.parseInt(smallToken.nextToken());
    		//	System.out.println(times[s]);/*for test*/
    		}
    	}
    }
    
    void printList(){
    // 	String paraString = "<html><font color = yellow>"+"\t"+"名次" +"\t"+"名字 \t    步数  \t  用时(秒)\n\t";
    //	for(int i=0;i<name.length;i++){
    //		StringTokenizer tokenizer = new StringTokenizer(name[i]," ");
    	//	paraString +=(i+1)+"\t"+tokenizer.nextToken()+"\t"+tokenizer.nextToken()+"\t"+tokenizer.nextToken()+"\t"+"\n";
    		
    //	}
   // 	paraString += "</font></html>";
    	
    	String paraString ="\t"+"名次" +"\t"+"名字 \t    步数  \t  用时(秒)\n\t";
    	String littleTemp = "    ";
    	for(int i=0;i<name.length;i++){
    		StringTokenizer tokenizer = new StringTokenizer(name[i]," ");
    		paraString += (i+1)+"\t"+tokenizer.nextToken()+"\t"+littleTemp+tokenizer.nextToken()+"\t"+littleTemp+tokenizer.nextToken()+"\n"+"\t";
    	}
    	System.out.println(paraString );
    	SupportList1 aa = new SupportList1(paraString);
    	SupportList1.woailuo(aa);
    
    	} 
     void insert(String s,int i){
     	//???????????????????????????????????????????????????
    		for(int j = name.length-1;j>i;j--){
    			name[j] = name[j-1];
    		//	System.out.println("zheli"+name[j]);
    		}
    	//	System.out.println("zhe"+i);
    		name[i] = s;
    	}
    	/**
    	 *This method is written for rewrite the list.
    	 *
    	 */	
    	void reWriteList(){
    		int t = 0,s = 0,i= 0;
    	 // han
    		StringTokenizer tokenizer = new StringTokenizer(sname," ");
    		tokenizer.nextToken();
    		s= Integer.parseInt(tokenizer.nextToken());
    		t = Integer.parseInt(tokenizer.nextToken());
    		for(i=0;i<name.length;i++){
    			if(i==name.length-1){
    			   if(s>steps[steps.length-1]){
    			   	break;
    			   }
    			   if(s==steps[steps.length-1]){
    			   	if(t<times[steps.length-1]){
    				   	insert(sname,steps.length-1);
    			   	}
    			   	break;
    				
    			   }
    		   }
    		  if(s==steps[i]){
    		  	if(s==steps[i+1]&&t>=times[i]){
    		  		continue;
    		  	}
    		  	if(t<times[i]){
    		  		insert(sname,i);
    		  		break;
    		  	}
    		  }
    			if(s<steps[i]/*&&s<=steps[i+1]*/){
    				insert(sname,i);
    				break;
    				
    			}
    		}
    	}
    	
    
    		
    		/*
    		for( i = 0;i<steps.length-1;i++){
    			if(s<steps[0]){
    				insert(sname,0);
    				break;
    			}
    			if(s>steps[steps.length-1]){
    				break;
    			}
    			if(s<steps[i+1]&&s>steps[i]){
    				insert(sname,i+1);
    				break;
    			}
    			if(s==steps[i]){
    				if(t<times[i]){
    					insert(sname,i);
    				} 
    				insert(sname,i+1);
    				break;
    				}
    			}
    			*/
    		
    	/**
    	 *overriding the method of toString
    	 *
    	 */
    	public String toString(){
    		String temp = "";
    		for(int i = 0;i<name.length-1;i++){
    			temp += name[i]+"_";
    		}
    		temp += name[name.length-1];
    		return temp;
    	}
    	/**
    	 *Just write for file input.
    	 *
    	 */
    	void writeOnDisk(){
    	 try{
    	PrintWriter fileOut =
    new PrintWriter(new FileWriter(getFileName()));

    fileOut.println(toString());
    fileOut.close();
   }catch(IOException ioe){
   	System.out.println("error!");
   }
   catch(Exception e){
   	System.out.println("error4");//???????????
   	System.exit(0);
  }
  
  }
  void setFileName(int i){
  	fileName = "level"+ Integer.toString(i) +".txt";
  }
  static String getFileName(){
  	//!How to get FileName?
  	return fileName;
  }
	
	
/*public static v oid  main(String[]  args) throws IOException  {

		stdErr.print("Source filename:  ");
		stdErr.flush();

		BufferedReader  input =
				new BufferedReader( new FileReader(stdIn.readLine()));

		stdErr.print("Destination filename:  ");
		stdErr.flush();

		PrintWriter  output =
				new  PrintWriter(new FileWriter(stdIn.readLine()));

		String  line = input.readLine();

		while (line != null)  {
			output.println(line);
			line = input.readLine();
		}

		input.close();
		output.close();

		stdOut.println("done");
	}*/
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -