java 中的过滤器filter 都有什么作用

java 中的过滤器filter 都有什么作用,第1张

过滤器顾名思义就是进行过滤的,可以实现代码的定向执行和预处理。

通俗点说法filter相当于加油站,request是条路,response是条路,目的地是servlet,这个加油站设在什么地方对什么数据 *** 作可以由你来控制。

备注:过滤器可以再请求和响应之前做一部分预处理,有效的过滤掉不需要的内容,而且过滤器可以被复用,节省了大量的复用代码,提高了java的代码执行效率

import java.io.RandomAccessFile

/**

 * 格式

 * 

 *

 * <p>

 *

 * @author cs12110 2018年11月16日

 * @see

 * @since 1.0

 */

public class FormatText {

public static void main(String[] args) {

try {

RandomAccessFile acf = new RandomAccessFile("d://FormatText.java", "r")

String line

boolean isComment = true

while (null != (line = acf.readLine())) {

// 去除前后空格

// line.trim()

String noneSpaceLine = removeAllSpace(line)

// 简单的注解

if (isSimpleComment(noneSpaceLine)) {

continue

}

// 多行注解

if (noneSpaceLine.startsWith("/*")) {

isComment = true

}

if (isComment && noneSpaceLine.endsWith("*/")) {

isComment = false

continue

}

if (!isComment) {

System.out.println(noneSpaceLine)

}

}

acf.close()

} catch (Exception e) {

e.printStackTrace()

}

}

private static boolean isSimpleComment(String line) {

if (line.startsWith("//")) {

return true

}

return false

}

/**

 * 注意: 这里移除所有的空格,如果只想移除前后两端的,请使用: line.trim()

 * 

 * @param line

 *            行

 * @return String

 */

private static String removeAllSpace(String line) {

StringBuilder b = new StringBuilder(line.length())

for (char ch : line.toCharArray()) {

int num = (int) ch

if (num != 9 && num != 32) {

b.append(ch)

}

}

return b.toString()

}

}

测试数据为上面的java文件,测试结果如下

publicclassFormatText{

publicstaticvoidmain(String[]args){

try{

RandomAccessFileacf=newRandomAccessFile("d://FormatText.java","r")

Stringline

while(null!=(line=acf.readLine())){

StringnoneSpaceLine=removeAllSpace(line.trim())

if(isSimpleComment(noneSpaceLine)){

continue

}

System.out.println(noneSpaceLine)

}

acf.close()

}catch(Exceptione){

e.printStackTrace()

}

}

privatestaticbooleanisSimpleComment(Stringline){

if(line.startsWith("//")){

returntrue

}

returnfalse

}

privatestaticStringremoveAllSpace(Stringline){

StringBuilderb=newStringBuilder(line.length())

for(charch:line.toCharArray()){

if(ch!=''){

b.append(ch)

}

}

returnb.toString()

}

}

JFileChooser chooser = new JFileChooser()

FileNameExtensionFilter filter = new FileNameExtensionFilter(

"JPG &GIF Images", "jpg", "gif")

chooser.setFileFilter(filter)

int returnVal = chooser.showOpenDialog(parent)

if(returnVal == JFileChooser.APPROVE_OPTION) {

System.out.println("You chose to open this file: " +

chooser.getSelectedFile().getName())

}

JFileChooser就可以实现文件选择,但是只显示指定的文件类型的过滤类FileNameExtensionFilter只是JDK1.6版本里的,JDK1.4及其以下是没有的,如果想在JDK1.4里实现过滤,可以去1.6版本里找到该源码,自己编译使用


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/8121604.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存