前言:
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; } }
相关推荐
一刀切_约束下的矩形件优化排样算法比较与整合研究_刘倩
本资源"VB常用数值算法集1.rar"提供了一系列常用的VB数值算法实现,对开发者来说是一个宝贵的参考资料。 1. **数值计算基础**: 数值计算是计算机科学中的一个关键领域,涉及了各种数学运算的近似方法。在VB中,...
LMS算法是一种常用的自适应滤波算法。该算法的基本思想是使用梯度下降法来估计模型参数。 在MATLAB中,我们可以使用以下代码实现LMS算法: ```matlab clear all close all %%% 产生输入信号 num_signal = 20000; ...
本资源"常用算法程序集"是一个专门针对C语言的算法集合,旨在为程序员提供一个实用的参考库,特别是对于那些专注于数学计算的开发者来说,这个集合具有很高的价值。 首先,我们来看"www.pudn.com.txt",这可能是...
《Java常用算法手册》是一本面向Java初学者的算法指南,旨在通过深入浅出的方式,帮助读者理解并掌握各种常见的编程算法,从而提高他们的编程能力和解决问题的效率。这本书的覆盖范围广泛,涉及到算法基础、数据结构...
《Python算法教程_中文版 PDF》是一本专为Python初学者和进阶者设计的算法学习书籍,旨在帮助读者深入理解和掌握使用Python编程语言进行算法分析与设计的基本方法。本书全面覆盖了从基础到高级的各种算法,是学习...
"剑指offer"是中国IT行业求职者准备技术面试时的一个非常著名和常用的参考资料,它包含了众多互联网公司的面试题目和解题思路,对求职者来说具有很高的实用价值。 "简介.txt"文件很可能是整个资料集合的概述,它...
"竞争性编程所需的算法_C++_Java_下载.zip"这个压缩包文件很可能包含了一系列用于C++和Java编程语言的算法实现,帮助参赛者准备各类编程竞赛,如ACM国际大学生程序设计竞赛、Google Code Jam或LeetCode等平台的挑战...
这个名为"开源编程算法_C++_C_下载.zip"的压缩包很可能包含了一系列用C++和C语言编写的算法代码示例,供学习者研究、实践和改进。在深入探讨这些知识点之前,让我们先了解C++和C语言的基础以及它们在算法实现中的...
【蚁群算法】是一种模拟生物界蚂蚁寻找食物过程的优化算法,由Marco Dorigo于1992年提出。这种算法主要用于解决组合优化问题,如旅行商问题、网络路由等。在MATLAB环境中实现蚁群算法,可以利用其强大的矩阵运算能力...
嵌入式系统软件设计中的常用算法(完整版)
通过这一系列的材料和资源,学习者可以深入理解数据结构的基本原理,掌握算法设计与分析的方法,同时利用Python的高效性和易用性来实践编程,为未来解决更复杂的编程和算法问题打下坚实的基础。
学习数据结构与算法,对于任何一个立志于软件开发、编程教育以及计算机科学的从业者来说,都是基础且核心的技能。 二分法是一种高效的搜索算法,它基于有序数组或列表,通过对目标值与数组中间值的比较,将搜索范围...
一些MATLAB算法小程序,EM算法,CART算法等
在众多算法中,有五种被称为“五大常用算法”,它们是分治法、动态规划法、贪心算法、回溯法和分支限界法。这些算法几乎涵盖了日常开发中所面临问题的解决思路和方法论。本文将重点介绍分治法的核心概念、应用场景...
其中,Dart语言作为一种现代、简洁且易于上手的编程语言,越来越受到开发者的青睐。Dart语言不仅适用于构建移动应用、前端网页,还能进行高效的后端开发,因此在数据结构与算法的学习和实现中具有其独特的优势。 ...
整体来看,该学习资源集合为Python编程和算法学习者提供了一个全面的学习平台。它不仅包括了基础的理论知识,还提供了丰富的实践案例和项目,使得学习者能够通过理论与实践相结合的方式,全面提升自身的编程技能和...
资源名:多车辆车辆路径问题_用遗传算法编程_保证可用_matlab 资源类型:matlab项目全套源码 源码说明: 全部项目源码都是经过测试校正后百分百成功运行的,如果您下载后不能运行可联系我进行指导或者更换。 适合...
《网络编程(PHP算法_数据结构)学习资源》是一个综合性的学习资料包,它不仅包括了网络编程的基础知识,还涵盖了PHP编程中算法与数据结构的应用,对于任何想要提升自己技能的开发者来说,都是非常有价值的资源。
用TOA的方法,使用matlab编程,最终实现定位。