evalmarkov.java

来自「一个用于解决马尔可夫过程的源代码,很适合学习随机过程的同学1」· Java 代码 · 共 59 行

JAVA
59
字号
package net.kashivasi.markov.interpreter;

import java.util.*;
import java.lang.*;

class EvalMarkov
{
	private Vector left=new Vector();
	private Vector right=new Vector();

	String instring="";
	public EvalMarkov()
	{
	}

	public void setString(String ins)
	{
		instring=ins;
	}

	public void addRule(String leftArg, String rightArg)
	{
		left.add(leftArg);
		right.add(rightArg);
	}

	public String evaluate()
	{
		int ruleLen=left.size();
		int currRule=1;
		while(currRule<=ruleLen)
		{
			String lstr=(String)left.get(currRule-1);
			String rstr=(String)right.get(currRule-1);
			boolean isEval=replaceFirst(lstr, rstr);
			if(isEval)
				currRule=1;
			else
				currRule++;
		}
		return instring;
	}

	private boolean replaceFirst(String lstr, String rstr)
	{
		int indx=-1;
		if((indx = instring.indexOf(lstr) ) != -1)
		{
			String dest=instring.substring(0, indx);
			dest=dest+rstr;
			dest=dest+instring.substring(indx + lstr.length());
			instring=dest;
			return true;
		}

		return false;
	}

}

⌨️ 快捷键说明

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