dfajava的简单介绍
本篇文章给大家谈谈dfajava,以及对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、为什么大家都不喜欢用正则表达式?
- 2、java对日期的加法
- 3、用JAVA将字符串中不同类型字符进行分割
- 4、在linux下对写好的java程序编写shell脚本要怎么写? 我写的代码如下,有错误
- 5、给出描述Java表达式的DFA~~~~~~~~~~在线等
- 6、java正则 提取两个字符串中间的字段
为什么大家都不喜欢用正则表达式?
正则表达式,又称规则表达式,是计算机科学的一个概念,这个概念最初是由Unix中的工具软件普及开的。正则表通常被用来检索、替换那些符合某个模式(规则)的文本。正则引擎主要分为DFA、NFA两大类。许多程序设计语言都支持利用正则表达式进行字符串操作。例如,在Perl中就内建了一个功能强大的正则表达式引擎。
正则表达式的“鼻祖”或许可一直追溯到科学家对人类神经系统工作原理的早期研究。通常缩写成“regex”,单数有regexp、regex,复数有regexps、regexes、regexen。
大多数人不喜欢它,他们不理解它,不使用它,不写规则化,很难写出准确,有效的规则化。
不需要更多,也不需要更好的解决方案。
出于对“规则”这个词的恐惧,许多人第一次听到这个名字是一件很奇怪的事情。
它似乎是一个乱七八糟的字符串,
看起来头晕,而且没有学习的欲望。
很多的规则不仅看起来很奇怪,而且还有两个常规引擎DFA,NFA,还有更多的类型,例如PCRE、位置/gnu BRE、位置/gnu ERE,特别是操作的同事,发现可以在grep下正常匹配时,awk无法正常匹配。
DFA引擎的mysql、Java、flex、awkNFA引擎的perl、Java、grep、更多、vi、PHP(在旧版本的PHP中,有三个类库),DFA NFA引擎混合在TCL语言中。
大部分的工作不被使用,很少被使用,因此也懒得去学习。
这两个函数主要解决以下问题:冗长的表达式结构。
当匹配一种复杂的格式时,所使用的表达式不仅单调乏味,而且还晦涩难懂,它可以在不小心更改符号的情况下进行更改。
无限级多重替代功能将极大地改善这种情况。
可以将替换工作分解成几个步骤,这些步骤可以单独处理,使思路清晰,表达式易于维护。
不可能完成的任务。
正则表达式是通用的,有很多格式是不可能的或者很难使用表达式来完成的,很多时候我们需要编写一个新的程序来解决,引用函数时,很多问题都被解决了。
参考其替代的结果,这是非常有用的在处理复杂的格式。
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将字符串中不同类型字符进行分割
刚刚编写的 实测好用 拷贝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;
}
}
在linux下对写好的java程序编写shell脚本要怎么写? 我写的代码如下,有错误
-----以下是我项目的startup.sh的内容------
-----用shell调用java程序----------
if [ -z ${JAVA_HOME} ]
then
echo "JAVA_HOME not set yet,can't run java program!"
exit -1
fi
CLASSPATH=.:${JAVA_HOME}/lib/tools.jar:${JAVA_HOME}/lib/dt.jar
JLIBDIR=./lib
export JLIBDIR
for LL in `ls ${JLIBDIR}/*.jar`
do
CLASSPATH=${CLASSPATH}:${LL}
done
echo ${CLASSPATH}
export CLASSPATH
JAVA_OPTION="-Dfile.encoding=GBK -Xms256m -Xmx256m -XX:MaxPermSize=64m"
RUN_CLASS=com.lxq.batch.Main
${JAVA_HOME}/bin/java ${JAVA_OPTION} -classpath ${CLASSPATH} ${RUN_CLASS}
给出描述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));
}
}
}
dfajava的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于、dfajava的信息别忘了在本站进行查找喔。
发布于:2022-11-30,除非注明,否则均为
原创文章,转载请注明出处。