subjectcomparator.java

来自「手机邮箱撒的方式方式方式的」· Java 代码 · 共 50 行

JAVA
50
字号
package mujmail.ordering.comparator;

import mujmail.MessageHeader;
import mujmail.ordering.Ordering;

/**
 * Comparing messages based on mails subjects
 */
public class SubjectComparator extends MessageHeaderComparator {

    /** Creates comparator */
    public SubjectComparator(final Ordering ordering) {
        super(ordering);
    }

    /**
     * Compares subjects in messages case-insensitively.
     * 
     * @param messageHeader1 message where first subject have to be gotten
     * @param messageHeader2 message where second subject have to be gotten
     */
    protected int compare(MessageHeader messageHeader1, MessageHeader messageHeader2) {
        final String firstSubject = removeREsAndFWDs( messageHeader1.getSubject().toLowerCase() );
        final String secondSubject = removeREsAndFWDs( messageHeader2.getSubject().toLowerCase() );
        return firstSubject.compareTo( secondSubject );
    }

    /**
     * Removes from lower case subject leading "re:" and "fwd:" substrings.
     * 
     * @param subject lower case subject
     * @return subject without leading 're:'s and "fwd:"s
     */
    private String removeREsAndFWDs( final String subject ) {
          //System.out.println( "subject='" + subject + "'" );
        String result = subject.trim();
        while ( true ) {
            if ( result.startsWith("re:") ) {
                result = result.substring(3).trim();
            } else if ( result.startsWith("fwd:") ) {
                result = result.substring(4).trim();
            } else {
                break;
            }
        }
          //System.out.println( "result='" + result + "'" );
        return result;
    }
}

⌨️ 快捷键说明

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