前言:
1) 操作场景是编程中的边沿处理
2) 思想: 把不同的地方经过处理变成逻辑上相同的, 长和if结合使用
3) 分类有两种:
上式:预先补齐,使得没有边沿的区别。
下式:事后修正,先放任结果中的边沿瑕疵,最后修理它
案例:
package day1; import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class cutflush { /** * 一刀切 */ public static void main(String[] args) { pyramid4(); } // 做法1 虾米级 public static void pyramid1(){ List list = new ArrayList(); String testStr = "abc ttt,kmd,uuu xyz"; String[] subs0 = testStr.split(" "); for(int i=0; i<subs0.length; i++){ String subs1 = subs0[i]; String[] subs10 = subs1.split(","); for(int j=0; j<subs10.length; j++){ list.add(subs10[j]); } } String[] arrys = (String[]) list.toArray(new String[list.size()]); //Arrays.toString(arrys) System.out.println(Arrays.toString(arrys)); } /** * 一刀切之上式:预先补齐 * 0 用逗号或空格分隔的串,提取出各个部分 * 1 观察发现除了xyz外每个字符串后都跟着一个特殊字符,或者空格 * 2 将最后的字符串xyz后面也跟上,或者空格,保证处理所有字符串特征一致(--->这就是预先补齐表达的含义) */ public static void pyramid2(){ String testStr = "abc ttt,kmd,uuu xyz"; String tempStr = ""; testStr += ","; for(int i=0; i<testStr.length(); i++){ char tempChar = testStr.charAt(i) ; if(tempChar == ' ' || tempChar == ','){ System.out.println(tempStr); tempStr = ""; }else{ tempStr += testStr.charAt(i) ; } } } /** * 一刀切之下式:事后修正法 ---> 先放任结果中的边沿瑕疵,最后修理它 * 0 将字符串用,分隔并输出 */ public static void pyramid3(){ String testStr = "abcttt"; StringBuilder sb = new StringBuilder(); for(int i=0; i<testStr.length(); i++){ char tempChar = testStr.charAt(i); sb.append(",").append(tempChar); } String result = sb.substring(1, sb.length()); System.out.println(result); } /** * 一刀切之上式:通话时间案例 * 某个用户的开始通话时间为: 12:38:15 结束通话时间为: 12:39:16 则该用户通话时长为:62秒 对于一般的情况,可能需要考虑:跨分钟,跨小时,跨零点的问题。 */ public static void pyramid4(){ String s1 = "23:59:9"; String s2 = "00:59:8"; int hour; if (Integer.valueOf(mySplit(s2).get(0)) < Integer.valueOf(mySplit(s1).get(0))) { hour = 24 + Integer.valueOf(mySplit(s2).get(0)) - Integer.valueOf(mySplit(s1).get(0));// 跨零点时+24 } else { hour = Integer.valueOf(mySplit(s2).get(0)) - Integer.valueOf(mySplit(s1).get(0)); } int min = Integer.valueOf(mySplit(s2).get(1)) - Integer.valueOf(mySplit(s1).get(1)); int sec = Integer.valueOf(mySplit(s2).get(2)) - Integer.valueOf(mySplit(s1).get(2)) + 1; System.out.println("hour: " + hour + " min: " + min + " second: " + sec); int time = hour * 60 * 60 + min * 60 + sec; System.out.println("通话时间长度为:"+time+"s"); String ans = ""; if(hour>0){ if(min > 0){ if(sec > 0){ ans=hour+"小时"+min+"分"+sec+"秒"; }else{ min = min -1; sec = sec + 60; ans=hour+"小时"+min+"分"+sec+"秒"; } }else{ hour = hour - 1; min = min + 60; if(sec > 0){ ans=hour+"小时"+min+"分"+sec+"秒"; }else{ min = min -1; sec = sec + 60; ans=hour+"小时"+min+"分"+sec+"秒"; } } } System.out.println(ans); } public static List<String> mySplit(String s) { List<String> list = new ArrayList<String>();//建立List存放时间 String t = "";//临时字符串 s += ":";//一刀切上式 for (int i = 0; i < s.length(); i++) { char c = s.charAt(i); if (c == ':') { list.add(t);//加入到list t = ""; } else { t += c; } } return list; } }
相关推荐
一刀切_约束下的矩形件优化排样算法比较与整合研究_刘倩
LMS算法是一种常用的自适应滤波算法。该算法的基本思想是使用梯度下降法来估计模型参数。 在MATLAB中,我们可以使用以下代码实现LMS算法: ```matlab clear all close all %%% 产生输入信号 num_signal = 20000; ...
《Java常用算法手册》是一本面向Java初学者的算法指南,旨在通过深入浅出的方式,帮助读者理解并掌握各种常见的编程算法,从而提高他们的编程能力和解决问题的效率。这本书的覆盖范围广泛,涉及到算法基础、数据结构...
《Python算法教程_中文版 PDF》是一本专为Python初学者和进阶者设计的算法学习书籍,旨在帮助读者深入理解和掌握使用Python编程语言进行算法分析与设计的基本方法。本书全面覆盖了从基础到高级的各种算法,是学习...
"竞争性编程所需的算法_C++_Java_下载.zip"这个压缩包文件很可能包含了一系列用于C++和Java编程语言的算法实现,帮助参赛者准备各类编程竞赛,如ACM国际大学生程序设计竞赛、Google Code Jam或LeetCode等平台的挑战...
这个名为"开源编程算法_C++_C_下载.zip"的压缩包很可能包含了一系列用C++和C语言编写的算法代码示例,供学习者研究、实践和改进。在深入探讨这些知识点之前,让我们先了解C++和C语言的基础以及它们在算法实现中的...
【蚁群算法】是一种模拟生物界蚂蚁寻找食物过程的优化算法,由Marco Dorigo于1992年提出。这种算法主要用于解决组合优化问题,如旅行商问题、网络路由等。在MATLAB环境中实现蚁群算法,可以利用其强大的矩阵运算能力...
详细介绍了神经网络算法、粒子群算法、遗传算法、模糊逻辑控制、免疫算法、蚁群算法、小波分析算法及其MATLAB的实现方式等内容; 第二部分详细介绍了智能算法的工程中的应用问题,包括模糊神经网络在工程中的应用、...
嵌入式系统软件设计中的常用算法(完整版)
一些MATLAB算法小程序,EM算法,CART算法等
在众多算法中,有五种被称为“五大常用算法”,它们是分治法、动态规划法、贪心算法、回溯法和分支限界法。这些算法几乎涵盖了日常开发中所面临问题的解决思路和方法论。本文将重点介绍分治法的核心概念、应用场景...
九章_算法基础班_二叉树与分治法(1) 九章_算法基础班_二叉树与分治法 算法 宽搜 2 算法基础 深度优先搜索 算法基础班 宽度优先搜索 1 4,算法强化 jiuzhang_算法强化_2 jiuzhang_算法强化班_1 算法强化班 二分法和...
资源名:多车辆车辆路径问题_用遗传算法编程_保证可用_matlab 资源类型:matlab项目全套源码 源码说明: 全部项目源码都是经过测试校正后百分百成功运行的,如果您下载后不能运行可联系我进行指导或者更换。 适合...
用TOA的方法,使用matlab编程,最终实现定位。
本资料"常用算法示例_Objective-C_C_下载.zip"主要涵盖了Objective-C和C语言中的常见算法实现,旨在帮助开发者深入理解和掌握这些基础而重要的算法。 Objective-C,作为苹果生态系统的主要编程语言,常用于iOS和...
本次比赛是针对全国大学生的一场算法设计与编程竞赛,旨在提升参赛者的算法思维和编程能力。春季赛作为赛事的一部分,通常会吸引众多热爱编程的学子参与,以展示他们的技术实力和解决问题的创新能力。 【描述】:...
Python算法教程_中文版,经典中的经典。好书不可多得。无论你是编程初学者,还是专业开发人员,本书的目标是让你快速掌握核心Python
而复杂的算法,如数值积分、解线性方程组、求解非线性方程、插值与拟合、最优化方法等,则需要开发者具备扎实的理论基础和编程技巧。 1. **数值积分**:VB可以使用梯形法则、辛普森法则等数值积分方法,通过循环...
遗传算法的MATLAB编程,MATLAB源程序
Simple算法是一种基础的、易于理解的算法,通常用于教学或简单的计算任务。由于该压缩包没有提及是否适用于.NET框架,所以可能需要确认所使用的开发环境是否兼容VB6.0。 【Simple算法】 Simple算法,这个名字可能是...