「javadfa」Javadfa算法

博主:adminadmin 2022-11-30 13:39:10 69

本篇文章给大家谈谈javadfa,以及Javadfa算法对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

给出描述Java表达式的DFA~~~~~~~~~~在线等

这是DFA算法,自己设定好值,看下结果

import java.util.*;

import java.io.*;

class DFA

{

 boolean recognizeString(int move[][], int accept_state[], String word)

 {

  

  int s=0;

  for (int i = 0; i word.length(); i++)

  {

   char c = word.charAt(i);

   s = move[s][c - 'a'];

  }

  for (int j = 0; j accept_state.length; j++)

   if (s == accept_state[j]) return true;

  return false;

 }

 public static void main(String args[]) throws IOException

 {

  int n, m;

  BufferedReader in = new BufferedReader(new FileReader("DFA.in"));

  StringTokenizer st = new StringTokenizer(in.readLine());

  n = Integer.parseInt(st.nextToken());

  m = Integer.parseInt(st.nextToken());

  while (n != 0)

  {

   int[][] move = new int[n][m];

   for(int i=0; in; i++)

   {

    st = new StringTokenizer(in.readLine());

    for (int j=0; jm; j++)

     move[i][j] = Integer.parseInt(st.nextToken());

   }

   String[] temp = in.readLine().split("\\s");

   int[] accept = new int[temp.length];

   for (int i=0; iaccept.length; i++) accept[i] = Integer.parseInt(temp[i]);

   String word = in.readLine();

   while (word.compareTo("#") != 0)

   {

    DFA dfa = new DFA();

    if (dfa.recognizeString(move, accept, word)) System.out.println("YES"); else System.out.println("NO");

    word = in.readLine();

   }

   st = new StringTokenizer(in.readLine());

   n = Integer.parseInt(st.nextToken());

   m = Integer.parseInt(st.nextToken());

  }

 }

}

java正则 提取两个字符串中间的字段

import java.util.regex.Matcher;

import java.util.regex.Pattern;

public class Cat

{

public static void main(String[] args)

{

String str = "asdf_{asd}_fas_{dfa}_sdfasdf_{dfa}_ ";

String reg = "_\\{((?:(?!\\}_)[\\s\\S])*)\\}_";

Pattern pattern = Pattern.compile(reg);

Matcher matcher = pattern.matcher(str);

while(matcher.find())

{

System.out.println(matcher.group(1));

}

}

}

java对日期的加法

public static void main(String[] args) {

// Calendar

Calendar ca = Calendar.getInstance();

//当前时间

System.out.println(ca.getTime());

//加一天

ca.add(Calendar.DAY_OF_MONTH, 1);

System.out.println(ca.getTime());

}

不是很明白你的意思,去掉周六日还能得到正确的日期吗?

用JAVA编写一个程序实现,计算两个字符串最长相同子串的长度。

//刚才写的。。。。

import java.io.DataInputStream;

import java.io.IOException;

public class StringLength {

public String search(String s1, String s2) {

String max = "";

for (int i = 0; i  s1.length(); i++) {

for (int j = i; j  s1.length(); j++) {

String sub = s1.substring(i, j);

if ((s2.indexOf(sub) != -1)  sub.length()  max.length()) {

max = sub;

}

}

}

return max;

}

public static void main(String[] args) {

String a = "";

String b = "";

System.out.println("请输入第一个字符串:");

a = inputString.getString();

System.out.println("请输入第二个字符串:");

b = inputString.getString();

String output = new StringLength().search(a, b);

System.out.println("相同的字符串是:" + output + "长度为:" + output.length());

}

}

class inputString {

public static String getString() {

DataInputStream dis = new DataInputStream(System.in);

String value = null;

try {

@SuppressWarnings("deprecation")

String str = dis.readLine();

value = str;

} catch (IOException e) {

e.printStackTrace();

}

return value;

}

}

用JAVA将字符串中不同类型字符进行分割

刚刚编写的 实测好用 拷贝getlist和gettype两个方法 给getlist里传入你想要处理的字符串就可以了!!!

package test;

import java.util.ArrayList;

import java.util.List;

public class main {

public static void main(String[] args) {

// TODO Auto-generated method stub

String k = "sdf345+.1dfa";

//data就是你想要的结果 方法就是getlist(String)

ListString data = getlist(k);

}

public static ListString getlist(String str){

int beforeCharTypeFlg=0;

int nowCharTypeFlg=0;

String subString = "";

ListString data = new ArrayListString();

for (int i=0;istr.length();i++){

String nowchar = str.substring(i, i+1);

nowCharTypeFlg = gettype(nowchar);

if(subString.equals("")){

subString = nowchar;

}else{

if(nowCharTypeFlg == beforeCharTypeFlg){

subString += nowchar;

}else{

String temp = subString;

data.add(temp);

subString = nowchar;

System.out.println(temp);

}

if(i == str.length()-1){

String temp = subString;

data.add(temp);

System.out.println(temp);

}

}

beforeCharTypeFlg = nowCharTypeFlg;

}

return data;

}

public static int gettype(String onechar){

String letter_reg = "[a-zA-Z]";

String number_reg = "[0-9]";

if(onechar.matches(letter_reg)){

return 0;

};

if(onechar.matches(number_reg)){

return 1;

};

return 2;

}

}

关于javadfa和Javadfa算法的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-11-30,除非注明,否则均为首码项目网原创文章,转载请注明出处。