src/main/java/org/wltea/analyzer/core/LetterSegmenter.java
private boolean processMixLetter(AnalyzeContext context){
		boolean needLock = false;
		
		if(this.start == -1){//当前的分词器尚未开始处理字符
			if(CharacterUtil.CHAR_ARABIC == context.getCurrentCharType()
					|| CharacterUtil.CHAR_ENGLISH == context.getCurrentCharType()){
				//记录起始指针的位置,标明分词器进入处理状态
				this.start = context.getCursor();
				this.end = start;
			}
			
		}else{//当前的分词器正在处理字符			
			if(CharacterUtil.CHAR_ARABIC == context.getCurrentCharType()
					|| CharacterUtil.CHAR_ENGLISH == context.getCurrentCharType()){
				//记录下可能的结束位置
				this.end = context.getCursor();
				
			}else if(CharacterUtil.CHAR_USELESS == context.getCurrentCharType()
						&& this.isLetterConnector(context.getCurrentChar())){
				//记录下可能的结束位置
				this.end = context.getCursor();
			}else{
				//遇到非Letter字符，输出词元
				Lexeme newLexeme = new Lexeme(context.getBufferOffset() , this.start , this.end - this.start + 1 , Lexeme.TYPE_LETTER);
				context.addLexeme(newLexeme);
				this.start = -1;
				this.end = -1;
			}			
		}
		
		//判断缓冲区是否已经读完
		if(context.isBufferConsumed() && (this.start != -1 && this.end != -1)){
            //缓冲以读完，输出词元
            Lexeme newLexeme = new Lexeme(context.getBufferOffset() , this.start , this.end - this.start + 1 , Lexeme.TYPE_LETTER);
            context.addLexeme(newLexeme);
            this.start = -1;
            this.end = -1;
		}
		
		//判断是否锁定缓冲区
		if(this.start == -1 && this.end == -1){
			//对缓冲区解锁
			needLock = false;
		}else{
			needLock = true;
		}
		return needLock;
	}
private boolean processMixLetter(AnalyzeContext context){
		boolean needLock = false;
		
		if(this.start == -1){//当前的分词器尚未开始处理字符
			if(CharacterUtil.CHAR_ARABIC == context.getCurrentCharType()
					|| CharacterUtil.CHAR_ENGLISH == context.getCurrentCharType()){
				//记录起始指针的位置,标明分词器进入处理状态
				this.start = context.getCursor();
				this.end = start;
			}
			
		}else{//当前的分词器正在处理字符			
			if(CharacterUtil.CHAR_ARABIC == context.getCurrentCharType()
					|| CharacterUtil.CHAR_ENGLISH == context.getCurrentCharType()){
				//记录下可能的结束位置
				this.end = context.getCursor();
				
			}else if(CharacterUtil.CHAR_USELESS == context.getCurrentCharType()
						&& this.isLetterConnector(context.getCurrentChar())){
				//记录下可能的结束位置
				this.end = context.getCursor();
			}else{
				//遇到非Letter字符，输出词元
				Lexeme newLexeme = new Lexeme(context.getBufferOffset() , this.start , this.end - this.start + 1 , Lexeme.TYPE_LETTER);
				context.addLexeme(newLexeme);
				this.start = -1;
				this.end = -1;
			}			
		}
		
		//判断缓冲区是否已经读完
		if(context.isBufferConsumed() && (this.start != -1 && this.end != -1)){
            //缓冲以读完，输出词元
            Lexeme newLexeme = new Lexeme(context.getBufferOffset() , this.start , this.end - this.start + 1 , Lexeme.TYPE_LETTER);
            context.addLexeme(newLexeme);
            this.start = -1;
            this.end = -1;
		}
		
		//判断是否锁定缓冲区
		if(this.start == -1 && this.end == -1){
			//对缓冲区解锁
			needLock = false;
		}else{
			needLock = true;
		}
		return needLock;
	}
private boolean processMixLetter ( AnalyzeContext context ) { boolean needLock = false ; if ( this . start == - 1 ) { //当前的分词器尚未开始处理字符
 if ( CharacterUtil . CHAR_ARABIC == context . getCurrentCharType ( ) || CharacterUtil . CHAR_ENGLISH == context . getCurrentCharType ( ) ) { //记录起始指针的位置,标明分词器进入处理状态
 this . start = context . getCursor ( ) ; this . end = start ; } } else { //当前的分词器正在处理字符			
 if ( CharacterUtil . CHAR_ARABIC == context . getCurrentCharType ( ) || CharacterUtil . CHAR_ENGLISH == context . getCurrentCharType ( ) ) { //记录下可能的结束位置
 this . end = context . getCursor ( ) ; } else if ( CharacterUtil . CHAR_USELESS == context . getCurrentCharType ( ) && this . isLetterConnector ( context . getCurrentChar ( ) ) ) { //记录下可能的结束位置
 this . end = context . getCursor ( ) ; } else { //遇到非Letter字符，输出词元
 Lexeme newLexeme = new Lexeme ( context . getBufferOffset ( ) , this . start , this . end - this . start + 1 , Lexeme . TYPE_LETTER ) ; context . addLexeme ( newLexeme ) ; this . start = - 1 ; this . end = - 1 ; } } //判断缓冲区是否已经读完
 if ( context . isBufferConsumed ( ) && ( this . start != - 1 && this . end != - 1 ) ) { //缓冲以读完，输出词元
 Lexeme newLexeme = new Lexeme ( context . getBufferOffset ( ) , this . start , this . end - this . start + 1 , Lexeme . TYPE_LETTER ) ; context . addLexeme ( newLexeme ) ; this . start = - 1 ; this . end = - 1 ; } //判断是否锁定缓冲区
 if ( this . start == - 1 && this . end == - 1 ) { //对缓冲区解锁
 needLock = false ; } else { needLock = true ; } return needLock ; }
处理数字字母混合输出
如：windos2000 | linliangyi2005@gmail.com
* @param input
@param context
@return
处理数字字母混合输出 如：windos2000 | linliangyi2005