首先明确子串的概念,字符串abc,共有6个子串,a,b,c,ab,bc,abc,找出两个字符串中所共有的子串,我的思路是这样的,先找到这两个字符串中相袜基槐同的字符串片段,然后,分解这些片段,这些片段分解后的子串就是两个字符串所共同的子串
import java.util.HashSet
import java.util.Iterator
import java.util.Set
import java.util.Vector
public class Strhelp {
public static Vector<String>list1=new Vector<String>()
public static Set set1 = new HashSet()
public static Set set2 = new HashSet()
/**
* 从第一个字符串的第一个字符开始,寻找str2中和str1中字符相同的字符及其位置
* @param str1
* @param str2
*/
public static void sameStr(String str1,String str2){
int l1=str1.length()
int l2=str2.length()
for(int i=0i<l1i++){
for(int j=0j<l2j++){
if(str1.charAt(i)==str2.charAt(j)){
samechar(str1,str2,i,j)
}
}
}
}
/**
* 找到相同的字符及其位置后,以此为基础,向后延长,查找告友相同的字符串
* @param s1
* @param s2
* @param index1
* @param index2
*/
public static void samechar(String s1,String s2,int index1,int index2){
int length=2
if((index1+length)<=s1.length()&(index2+length)<=s2.length()){
while(s1.substring(index1, index1+length).equals(s2.substring(index2, index2+length))){
length++
}
}
list1.add(s1.substring(index1, index1+length-1))
}
/**
* 找到的相同的字符串必然有重复的,这里将重复的消除
* @param list
*/
public static void delsmae(Vector<锋厅String>list){
for(int i=0i<list.size()i++){
set1.add(list.get(i).toString())
}
}
/**
* 遍历set,逐个分解子串
* @param s
*/
public static void zichuan(Set s){
Iterator it = s.iterator()
for(it.hasNext()){
getchuan(String.valueOf(it.next()))
}
}
/**
* 该函数用于分解字符串,查找子串
* @param str
*/
public static void getchuan(String str){
set2.add(str)
int len=str.length()-1
int begin=0
if(str.length()==1){
set2.add(str)
}else{
for(int i=0i<2i++){
getchuan(str.substring(0, len))
set2.add(str.substring(0, len))
getchuan(str.substring(1, len+1))
set2.add(str.substring(1, len+1))
}
}
}
public static void main(String[] args){
String str1="sdfsfherrshdrghjjtyasdwr"
String str2="asdfhdfhfrsadfthfsdgfhwe"
sameStr(str1,str2)
delsmae(list1)
zichuan(set1)
System.out.println(set2)//打印相同的子串
}
}
想要系统闭拍,全方面的学习java,你只有系统地去学习,从零基础到项目框架开发,一套完整的学习规划和学习流程,知道现在应该掌握哪方面的知识,下一步学习哪方面的知识,企业和岗位需要你学习哪方面的知识。首先是Javase作为Java最基本的学习内容,不再多说。
然后是掌握JavaScript的基本原理,因为做Java编程开发必须学会JavaScript,用到JavaScript非常多,但是现在很多公司是不用去写原生的JavaScript,但是如果你想成为一个厉害的Java开发者,JavaScript必须从理论到实际 *** 作中都要非常得心应手。
现在公司是必须要求会用框架的,所以取代JavaScript的就是jQuery,这是一个非常简易的框架,学jQuery的时候你就会觉得它比JavaScript好用的多。所以jQuery是你必须掌握的。
还有必须学一些框架,比如SpringMVC、Spring、Mybatis、Struts、Hibernate等等,这些就会难理解一些,但是公司是需要要求你会框架的,目前国内的公司应用SSH比较多,建议至少学三个框架,这是找到工作的基本需求。
数据库技术是Java工作者必须掌握的技能常用就是Mysql。
Javaweb的内容还有html、css、jsp、Servlet等技术,这些都是现在找Java开发必须掌握的东西。
以上就是粗略的必须掌握的技术,如果你想找到一份Java开发的工作,上述相关技术必须熟练掌握并且应用到项目中。
那么对于想自学Java开发的应该如何掌握上述相关技术?
一:首先,有这样的一种情况很常见,对于想自学Java开发的人来说,他们大多数都是非常盲目的,不知道自己该如何入手,很多人在网上找一些视频,然后疯狂的过视频,很快就把一块内容都学完,他们理解的学完了就是视频看完了,但是让他们动手去做东西却做不出明孝来,而我的理解学完了就是自己能写出东西,所以对于初学者来说一定不能盲目,要有自己的规划,不然就是浪费时间白忙活。
二:既然是学习Java开发专业技术,我个人的建议是,一定要有一个能指导你的人,不能都靠自己闭门造车,这样的行为并不聪明,结识一位这方面的人才,时不时去问问人家问题,不然你可能会发现一个小问题能困扰你一天,最后还不知道是什么原因。
三:学习Java开发技术,不能跟学数学语文一样对待,比较刚接触代码是不容易记住的,所以要掌握上述的技术,你还要知道学习Java开发技术有哪些“坑”。对于学习方法这块是尤为重要的,怎么学才能让你学完了能记住之前学的那些,不至于学完了就忘,这个问题值得你学习之前去思考的。
四:根据我多年的学习情况来看,你平时一定要养成好的学习习惯,就说我自己吧!我就喜欢把自己曾经遇到的问题整理在电脑的日记本上,然后我会搜集一下博客相关的Java技术文章,一些我认为比较有用的网站,以后都能用得上,这是我个人的学习习惯,相信我,如果你想走得更远,一定要养成习惯。
最后给大家一些详细的学习安排路线:
Java基础:Java基础语法、数组、类与对象、继承与多态、异常、范型、集合、流与文件、反射、枚举、自动装箱和注解。
数据库:mysql、oracle
Javaweb:HTML与CSS网页开发基础、JavaScript脚本语言、搭建开发环境、JSP基本语法、JSP内置对象、JavaBean技术、Servlet技术、Ajax技术
框架:Struts2、Hibernate、Spring、SpringMVC、mybatis
小程序的编写就更好说了,等你学完这些,随便看一下教程就会做了,我这边也有小程序相关的教程,这里有一个Java学习交流裙,里面有我录制的最新Java学习路线和教程,可以跟着学,有激态稿什么不懂的地方可以随时在里面问,大家都会帮忙解答,学习氛围很好,下面就是这个Java学习裙。先是494,然后中间就是一个801,最后面接上一个931就是了。
先从sun公司官方网站悄早渣下载需要的程序工具;在计算机上配置java运行环境,和其他编程,如c,c++不同(只需安装一个软件,如vc6.0),其需要改变系统的相关设置,可以参考相关资料;睁悔
最后即可以编写程序代码(和其他语言一样),编译,运行。
注:在我空间博客有一些以前编写的小java程序,启悄都是运行成功的,没事时,可以随便看看,
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)