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

📄 wordsorterbylength.java

📁 KWIC系统 采用管道/过滤器风格实现
💻 JAVA
字号:
import java.io.IOException;
import java.io.CharArrayWriter;
import java.util.StringTokenizer;

public class WordSorterByLength extends Filter
{
	public WordSorterByLength(Pipe input, Pipe output)
	{
    	super(input, output);
	}

    protected void transform()
    {
       try
       {
          CharArrayWriter writer = new CharArrayWriter();
          int c = input_.read();
          
          while(c != -1)
          {
          	  writer.write(c);
          	  c=input_.read();
          }
          
          String text = writer.toString();
          StringTokenizer tokenizer = new StringTokenizer(text);  
          String[] words = new String[tokenizer.countTokens()];  
          int i = 0;

          while(tokenizer.hasMoreTokens())        //将text拆开成单个的词
             words[i++] = tokenizer.nextToken();
             
          String after[]=sort(words);
          String s=new String();
          
          for(int n = 0; n < words.length; n++)  
          {   
              s+=words[n]+" ";
          }
              
          char[] chars = s.toCharArray();
			
		  for(int j=0; j<chars.length; j++)
				output_.write(chars[j]);
		  
		  output_.closeWriter();		
        }      
        catch(IOException exc)
        {
           exc.printStackTrace();
           System.err.println("KWIC Error: Could not make circular shifts.");
           System.exit(1);
        }
    }
    
    public String[] sort(String [] words)   //sort words
    {
    	String temp;
    	for(int i=0;i<words.length;i++)
    	{
    		for(int j=words.length-1;j>=i;j--)
    		{
    			if((words[j].length()<words[i].length())||((words[j].length()==words[i].length())&&words[j].compareToIgnoreCase(words[i])<0))
    			{
    				temp=words[j];
    				words[j]=words[i];
    				words[i]=temp;
    			}
    		}
    	}
    	
    	return words;
    }
}
  

⌨️ 快捷键说明

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