精华内容
下载资源
问答
  • Java数字匹配的kmp算法

    2020-03-05 10:58:35
    package Four; /*** * 研究kmp算法(数字之间的匹配... * 找到和序列b完全匹配的子串,如果有多个匹配的位置, * 输出最小的那个 */ import java.util.Scanner; public class NumberKmp { static int[] nextTab...
    package Four;
    /***
     * 研究kmp算法(数字之间的匹配模式)
     * @author bai
     *	题目描述:给你两个数字序列,你的任务是在序列a中
     *	找到和序列b完全匹配的子串,如果有多个匹配的位置,
     *	输出最小的那个
     */
    import java.util.Scanner;
    public class NumberKmp {
    	static int[] nextTable = new int[1000];
    	static int[] pattern  = new int[1000];
    	static int[] text = new int[10000];
    	
    	//创建next表
    	public static void getNextTable(int m){
    		int j =0;
    		nextTable[j] = -1;
    		int i = nextTable[j];
    		while(j<m){
    			if(i==-1||pattern[j]==pattern[i]){
    				i++;
    				j++;
    				nextTable[j] = i;
    			}else{
    				i = nextTable[i];
    			}
    		}
    		return;
    	}
    	
    	
    	public static int KMP(int n,int m){
    		getNextTable(m);
    		int i=0;
    		int j=0;
    		while(i<n&&j<m){
    			if(j==-1||text[i]==pattern[j]){
    				i++;
    				j++;
    			}else{
    				j=nextTable[j];
    			}
    		}
    		if(j==m){
    			return i-j+1;
    		}else{
    			return -1;
    		}
    	}
    	public static void main(String[] args) {
    		//caseNumber 控制循环次数  如果caseNumber=2 则可以为text和pattern数组进行两次赋值比较
    		int caseNumber;
    		Scanner scan = new Scanner(System.in);
    		System.out.print("caseNumber = ");
    		caseNumber = scan.nextInt();
    		while((caseNumber--)>0){
    			int n,m;
    			System.out.print("n= ");
    			n = scan.nextInt();
    			System.out.print("m= ");
    			m = scan.nextInt();
    			System.out.print("为text[]数组赋值:");
    			for(int i =0;i<n;i++){
    				text[i] = scan.nextInt();
    			}
    			System.out.print("为patter[]数组赋值:");
    			for(int j =0;j<m;j++){
    				pattern[j] = scan.nextInt();
    			}
    			System.out.println(KMP(n,m));
    		}
    	}
    }
    
    

    在这里插入图片描述

    展开全文
  • 对 N 中每一种不同个位数字,以 D:M 格式在一行中输出该位数字 D 及其在 N 中出现次数 M。要求按 D 升序输出。 输入样例: 100311 输出样例: 0:2 1:3 3:1 实现代码: import java.io.BufferedReader; ...

    L1-003 个位数统计 (15分)

    本题使用了KMP匹配模式串算法

    给定一个 k 位整数 N=d​k−1​​ 10​k−1​​ +⋯+d​1​​ 10​1​​ +d​0​​  (0≤d​i​​ ≤9, i=0,⋯,k−1, d​k−1​​ >0),请编写程序统计每种不同的个位数字出现的次数。例如:给定 N=100311,则有 2 个 0,3 个 1,和 1 个 3。

    输入格式:
    每个输入包含 1 个测试用例,即一个不超过 1000 位的正整数 N。

    输出格式:
    对 N 中每一种不同的个位数字,以 D:M 的格式在一行中输出该位数字 D 及其在 N 中出现的次数 M。要求按 D 的升序输出。

    输入样例:
    100311
    输出样例:

    0:2
    1:3
    3:1
    

    实现代码:

    
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.util.Arrays;
    import java.util.HashSet;
    import java.util.Set;
    
    public class Main {
        public static void main(String[] args) throws IOException {
            BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
            String strings = bf.readLine();
            int[] ints = new int[10];
            char[] chars = strings.toCharArray(),chs;
            Set<String> set = new HashSet<String>(Arrays.asList(strings.split("")));
            for (String s:set) {
                chs = s.toCharArray();
                ints[Integer.parseInt(s)] = KMPReturnCount(chars,chs);
            }
            for (int i = 0; i < 10; i++) {
                if (ints[i] != 0){
                    System.out.println(i + ":" + ints[i]);
                }
            }
        }
        /**
         * 求KMP算法的临时数组next[]
         * @param pattern 模式串
         * @return next
         */
        public static int[] computeTemporaryArray(char pattern[]){
            int[] next = new int[pattern.length];
            int j = 0;
            for (int i = 1; i < next.length;) {
                if (pattern[i] == pattern[j]){
                    next[i] = j+1;
                    i++;
                    j++;
                }else {
                    if(j != 0){
                        j = next[j-1];
                    }else {
                        next[i] = 0;
                        i++;
                    }
                }
            }
            return next;
        }
    
        /**
         * KMP算法本体 返回匹配到的数量
         * @param text 主串
         * @param pattern 模式串
         * @return int 匹配到的字符串的数量
         */
        public static int KMPReturnCount(char[] text , char[] pattern){
            int[] next = computeTemporaryArray(pattern);
            int i=0;
            int j=0;
            int count=0;
            while(i < text.length && j<pattern.length){
                if (text[i] == pattern[j]){
                    i++;
                    j++;
                }else{
                    if (j==0){
                        i++;
                    }else {
                        j= next[j-1];
                    }
                }
                if (j >= pattern.length){
                    j = 0;
                    count++;
                }
            }
            return count;
        }
    }
    
    
    
    展开全文
  • JAVA_API1.6文档(中文)

    万次下载 热门讨论 2010-04-12 13:31:34
    java.util.regex 用于匹配字符序列与正则表达式指定模式的类。 java.util.spi java.util 包中类服务提供者类。 java.util.zip 提供用于读写标准 ZIP 和 GZIP 文件格式类。 javax.accessibility 定义了用户...
  • truts2的匹配模式详情请见http://java.sun.com/docs/books/tutorial/i18n/format/decimalFormat.html 可以在资源文件中定义日期及其数字的格式化,例如在classpath下新建一个.properties文件,起名为format....

    truts2的匹配模式详情请见
    http://java.sun.com/docs/books/tutorial/i18n/format/decimalFormat.html

     

    可以在资源文件中定义日期及其数字的格式化,例如在classpath下新建一个.properties文件,起名为format.properties,内容如下
    format.date = {0,date,dd-MM-yyyy}
    {}里面的意思如下
    { 参数序号(从0开始), 格式类形(number | date | time | choice), 格式样式(详情请见http://java.sun.com/docs/books/tutorial/i18n/format /decimalFormat.html#numberpattern)}

    用<s:text>进行引用

                 < s:i18n  name ="format" >
                    
    < s:text  name ="format.date"   >
                        
    < s:param  value ="user.birthday" ></ s:param >     
                    
    </ s:text >
                
    </ s:i18n >

    后台如果设置user.setBirthday(new Date());

    前台显示:09-04-2009

    在属性文件中可以进行数字等格式话
    format.percent = {0,number,##0.00'%'}
    format.money = {0,number,$##0.00}

    参见帖子如下:
    http://www.blogjava.net/keweibo/articles/174997.html

     

     

    展开全文
  • java常用工具类使用

    热门讨论 2012-03-19 20:11:37
    Date的输出结果是按照国际通用格式输出的,而中国更习惯于“年-月-日”形式输出,这种特殊格式的输出需要用到Java格式化工具。 3. 格式化工具 格式化目的是把一个对象以不同格式表示,以满足不同环境对格式...
  • java api最新7.0

    千次下载 热门讨论 2013-10-26 17:34:06
    java.util.regex 用于匹配字符序列与正则表达式指定模式的类。 java.util.spi java.util 包中类服务提供者类。 java.util.zip 提供用于读写标准 ZIP 和 GZIP 文件格式类。 javax.accessibility 定义了用户界面...
  • 软件对象是现实世界对象的模式化产物,他们也有状态 和行为。软件对象把状态用数据表示并存放在变量里,而行为则用方法实现。实际上,软件 对象还包括了数据结构和使用这些数据结构代码。因此也可以说:软件对象是...
  • AIC的Java课程7-12章

    2007-07-29 20:55:11
     理解正则表达式,学会使用String.matches方法,Pattern和Matcher类进行模式匹配。  学会使用String.split方法,Scanner类,StringTokenizer类分解字符串。  [*]利用Formatter类printf或format...
  • AIC的Java课程1-6章

    2007-07-29 16:20:11
     理解正则表达式,学会使用String.matches方法,Pattern和Matcher类进行模式匹配。  学会使用String.split方法,Scanner类,StringTokenizer类分解字符串。  [*]利用Formatter类printf或format...
  • JAVA 正则表达式

    热门讨论 2010-01-15 11:16:37
    大家都知道,正则表达式是一种可以用于模式匹配和替换的规范,一个正则表达式就是由普通的字符(例 如字符 a 到 z)以及特殊字符(元字符)组成的文字模式,它用以描述在查找文字主体时待匹配的一个或 多个字符串...
  • java面试宝典

    2013-02-28 16:04:01
    java面试试题 全面 准确 带答案 coreJava部分 8 1、面向对象特征有哪些方面?...246、如何设定weblogic热启动模式(开发模式)与产品发布模式? 57 247、如何启动时不需输入用户名与密码? 57 248、在...
  • Java 1.6 API 中文 New

    2013-10-26 14:08:22
    java.util.regex 用于匹配字符序列与正则表达式指定模式的类。 java.util.spi java.util 包中类服务提供者类。 java.util.zip 提供用于读写标准 ZIP 和 GZIP 文件格式类。 javax.accessibility 定义了用户界面...
  • [Java参考文档]

    2013-03-19 16:56:15
    java.util.regex 用于匹配字符序列与正则表达式指定模式的类。 java.util.spi java.util 包中类服务提供者类。 java.util.zip 提供用于读写标准 ZIP 和 GZIP 文件格式类。 javax.accessibility 定义了用户...
  • java范例开发大全

    2013-03-08 20:06:54
    第1章 Java开发环境搭建(教学视频:9分钟) 2 1.1 理解Java 2 1.2 搭建Java所需环境 3 1.2.1 下载JDK 3 1.2.2 安装JDK 4 1.2.3 配置环境 5 1.2.4 测试JDK配置是否成功 7 实例1 开发第一个Java程序 7 第2章 Java...
  • java.util.regex 用于匹配字符序列与正则表达式指定模式的类。 java.util.spi java.util 包中类服务提供者类。 java.util.zip 提供用于读写标准 ZIP 和 GZIP 文件格式类。 javax.accessibility 定义了用户界面...
  • java jdk-api-1.6 中文 chmd

    2018-03-22 11:32:15
    java.util.regex 用于匹配字符序列与正则表达式指定模式的类。 java.util.spi java.util 包中类服务提供者类。 java.util.zip 提供用于读写标准 ZIP 和 GZIP 文件格式类。 javax.accessibility 定义了用户...
  • 根据jdk帮助文档: 日期和时间模式规定元: 日期和时间格式由日期和时间模式字符串指定。 在日期和时间模式字符串中,...模式字母通常重复,因为它们的数字确定了准确的表示: Text:对于格式化,如果模式字...
    • 根据jdk帮助文档:

    • 日期和时间模式规定元:

      日期和时间格式由日期和时间模式字符串指定。 在日期和时间模式字符串中,从'A''Z'和从'a''z'的非引号的字母被解释为表示日期或时间字符串的组件的模式字母。 可以使用单引号( ' )引用文本,以避免解释。 "''"代表单引号。 所有其他字符不被解释; 在格式化过程中,它们只是复制到输出字符串中,或者在解析过程中与输入字符串匹配。

     

    • 模式字母通常重复,因为它们的数字确定了准确的表示:
      • Text:对于格式化,如果模式字母的数量是4以上,则使用完整的形式; 否则,如果有的话,使用简短或缩写形式。 对于解析,两种形式都是接受的,与模式字母的数量无关。

         
      • Number:对于格式化,模式字母的数量是最小位数,而较短的数字将零填充到此数量。 对于解析,模式字母的数量将被忽略,除非需要分隔两个相邻的字段。

         
      • Year:如果格式化程序的Calendar是公历,则应用以下规则。
        • 对于格式化,如果模式字母数为2,那么年份将被截断为2位数; 否则被解释为number
        • 对于解析,如果模式字母的数量大于2,则年份将按字面解释,而不管数字的数量。 所以使用“MM / dd / yyyy”模式,“01/11/12”解析到公元12年1月11日
        • 为了使用缩写年份模式(“y”或“yy”)进行解析, SimpleDateFormat必须解释相对于某个世纪的缩写年份。 它是通过将日期调整为在创建SimpleDateFormat实例之后的80年之前和20年之后进行的。 例如,使用1997年1月1日创建的“MM / dd / yy”模式和SimpleDateFormat实例,字符串“01/11/12”将被解释为2012年1月11日,而字符串“05/04 / 64“将被解释为1964年5月4日。在解析期间,只有由Character.isDigit(char)定义的两个数字组成的字符串将被解析为默认世纪。 任何其他数字字符串,例如一位数字字符串,三位或三位以上数字字符串,或两位数字字符串(不全部为数字)(例如“-1”),均按字面解释。 所以“01/02/3”或“01/02/003”的解析方式与公元3年1月2日相同。 同样,“01/02 / -3”在公元前4年1月2日被解析。
        否则,将应用日历系统特定的表单。 对于格式化和解析两者,如果模式字母数为4以上,则使用特定日历long form 。 否则,使用一个特定日历short or abbreviated form
         

     

    一:String->Date,(借助SimpleDateFormat中的parse函数)

    示例代码: 

    package day_08;
    
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    public class StrtransferDate {
        public static void main(String[] args) throws ParseException {
    //        parse()函数,这个函数是SimpleDateFormat的
    
            String str="2016-06-06 01:02:03";
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            Date date = sdf.parse(str);
            System.out.println(date);
    
        }
    }
    

    二:Date->String(借助SimpleDateFormat中的format函数)

    示例代码: (部分代码来自于:https://www.cnblogs.com/yjhrem/articles/2419717.html

    public static void main(String[] args) throws ParseException {
    //必须明确,SimpleDateFormat只是一个规定格式的作用。
            SimpleDateFormat CeshiFmt1=new SimpleDateFormat("Gyyyy年MM月dd日 HH时mm分ss秒");
            SimpleDateFormat CeshiFmt2=new SimpleDateFormat("yyyy/MM/dd HH:mm"); 
            SimpleDateFormat CeshiFmt3=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            SimpleDateFormat CeshiFmt4=new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒 E ");
            SimpleDateFormat CeshiFmt5=new SimpleDateFormat("yyyy/MM/dd E"); 
            SimpleDateFormat CeshiFmt6=new SimpleDateFormat(
                    "一年中的第 D 天 ,第w个星期 ,一个月中第W个星期 ,k时 z时区");
    
    
            Date now=new Date();
            String str1=CeshiFmt1.format(now);   // 规定格式的Date转换为String
            String str2=CeshiFmt2.format(now);
            String str3=CeshiFmt3.format(now);
            String str4=CeshiFmt4.format(now);
            String str5=CeshiFmt5.format(now);
            String str6=CeshiFmt6.format(now);
    
    
     }

    总结:看着知识点比较碎,但是两个转换就是SimpleDateFormat的对象调用相应的函数(SimpleDateFormat规定好格式),调用函数的参数位置传入待转换的数据,函数的返回值填写目标类型的对象即可。

     

    补一个工具类的代码:实现了String和Date的互相转换

    //转换工具类代码
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    public class transfer {
        private transfer(){}  //设置为private,防止创建对象,让其作为工具类
       
        public String DateToString(Date date, String format){
            SimpleDateFormat sdf=new SimpleDateFormat(format);
            String s=sdf.format(date);
            return s;
        }
        
        public Date StringToDate(String str,String format) throws ParseException {
            SimpleDateFormat sdf=new SimpleDateFormat(format);
            Date date=sdf.parse(str);  //这里得Alt+enter补全throws
        }
    }
    
    
    
    
    //测试类代码
    package day_08;
    
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    public class test {
        public static void main(String[] args) throws ParseException {
    //     测试date转为String
            Date date=new Date();
        String format="yyyy-MM-dd";
        String str=transfer.DateToString(date,format);
            System.out.println(str);
    
    //        测试String转为Date
            String str1="2000-01-02";
            Date date1=transfer.StringToDate(str1,format);
            System.out.println(date1);
    
        }
    }
    

    结果:

    2021-02-02
    Sun Jan 02 00:00:00 CST 2000

    展开全文
  • JavaAPI中文chm文档 part2

    2011-08-19 08:58:42
    java.util.regex 用于匹配字符序列与正则表达式指定模式的类。 java.util.spi java.util 包中类服务提供者类。 java.util.zip 提供用于读写标准 ZIP 和 GZIP 文件格式类。 javax.accessibility 定义了用户...
  • Java-PHP-C#

    2012-11-27 15:13:36
    简单说,正则表达式是一种可以用于模式匹配和替换强大工具。在几乎所有基于UNIX/LINUX系统软件工具中找到正则表达式痕迹,例如:Perl或PHP脚本语言。此外,JavaScript这种客户端脚本语言也提供了对正则...
  • JavaAPI1.6中文chm文档 part1

    热门讨论 2011-08-19 08:33:34
    java.util.regex 用于匹配字符序列与正则表达式指定模式的类。 java.util.spi java.util 包中类服务提供者类。 java.util.zip 提供用于读写标准 ZIP 和 GZIP 文件格式类。 javax.accessibility 定义了用户...
  • JAVA 范例大全 光盘 资源

    热门讨论 2012-03-07 16:30:00
    实例60 匹配方法使用 141 实例61 替换方法使用 142 实例62 检验E-mail合法性 143 第8章 集合 146 实例63 谁养鱼(运用ArrayList) 146 实例64 查看书目(运用Iterator) 153 实例65 操作元素(运用...
  • java范例开发大全源代码

    热门讨论 2011-10-30 23:31:51
     第1章 Java开发环境搭建(教学视频:9分钟) 2  1.1 理解Java 2  1.2 搭建Java所需环境 3  1.2.1 下载JDK 3  1.2.2 安装JDK 4  1.2.3 配置环境 5  1.2.4 测试JDK配置是否成功 7  实例1 ...
  • java 面试题 总结

    2009-09-16 08:45:34
     GC是垃圾收集意思(Gabage Collection),内存处理是编程人员容易出现问题地方,忘记或者错误内存回收会导致程序或系统不稳定甚至崩溃,Java提供GC功能可以自动监测对象是否超过作用域从而达到自动回收...
  • JAVA面试题最全集

    2010-03-13 13:09:10
    如果抛出一个异常,那么相匹配的 catch 子句就会执行,然后控制就会进入 finally 块(如果有的话)。 finalize?方法名。Java 技术允许使用 finalize() 方法在垃圾收集器将对象从内存中清除出去之前做必要的...
  • Java范例开发大全 (源程序)

    热门讨论 2011-04-27 07:47:22
     第1章 Java开发环境搭建(教学视频:9分钟) 2  1.1 理解Java 2  1.2 搭建Java所需环境 3  1.2.1 下载JDK 3  1.2.2 安装JDK 4  1.2.3 配置环境 5  1.2.4 测试JDK配置是否成功 7  实例1 开发第一个...
  • java范例开发大全(pdf&源码)

    热门讨论 2013-07-04 13:04:40
    第1章 Java开发环境搭建(教学视频:9分钟) 2 1.1 理解Java 2 1.2 搭建Java所需环境 3 1.2.1 下载JDK 3 1.2.2 安装JDK 4 1.2.3 配置环境 5 1.2.4 测试JDK配置是否成功 7 实例1 开发第一个Java程序 7 第2章 Java...

空空如也

空空如也

1 2 3 4 5 6
收藏数 103
精华内容 41
关键字:

java输出模式匹配的数字

java 订阅