JAVA新手牛刀小试之提取相同字符组成的子串
2018-06-18 03:22:03来源:未知 阅读 ()
给定一个字符串和子串特征标记,要求从源字符串中提取特征标记代表的所有子串,如:
给定源字符串:AaaBbb,和子串特征标记ab,要求提取出符合特征标记的所有相同字符组成的子串aa和bb
JAVA代码如下:
1 import java.util.ArrayList; 2 import java.util.Scanner; 3 4 import static java.lang.System.*; 5 import java.lang.String; 6 public class FindSub 7 { 8 public static void main(String[] args) 9 { 10 String src; 11 String sublable; 12 ArrayList<String> list=new ArrayList<String>(); 13 14 out.println("Please input the source string"); 15 Scanner input=new Scanner(System.in); 16 src=input.nextLine(); 17 18 out.println("please input the lable of substring"); 19 sublable=input.nextLine(); 20 21 list=getSub(src, sublable); 22 23 out.println("All substring is:"); 24 for(String s: list) 25 { 26 out.println(s); 27 } 28 } 29 30 public static ArrayList<String> getSub(String src, String sublable) 31 { 32 int flag=0; 33 int low=0, high=0; 34 char sign='\u0000'; 35 36 ArrayList<String> list=new ArrayList<String>(); 37 38 for (int i=0; i<src.length(); i++) 39 { 40 if (sublable.contains(src.substring(i, i+1))) 41 { 42 if (flag==0) 43 { 44 low=i; 45 high=i; 46 flag=1; 47 sign=src.charAt(i); 48 } 49 else 50 { 51 if (src.charAt(i)==sign) 52 { 53 high=i; 54 } 55 else 56 { 57 list.add(src.substring(low, high+1)); 58 low=i; 59 high=i; 60 sign=src.charAt(i); 61 } 62 } 63 } 64 else 65 { 66 if (flag==1) 67 { 68 list.add(src.substring(low, high+1)); 69 flag=0; 70 } 71 } 72 } 73 if (flag==1) 74 list.add(src.substring(low, high+1)); 75 76 return list; 77 } 78 }
运行结果
该程序可以改进,在输出提取出的子串的同时打印子串在源字符串中的起止标号,这样可以区分相同特征标记的不同子串,如:
源字符串AaaBaa特征标记a
输出aa 1, 2
aa 5,6
懒得改了,有兴趣可以自己尝试
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 国外程序员整理的Java资源大全(全部是干货) 2020-06-12
- 2020年深圳中国平安各部门Java中级面试真题合集(附答案) 2020-06-11
- 2020年java就业前景 2020-06-11
- 04.Java基础语法 2020-06-11
- Java--反射(框架设计的灵魂)案例 2020-06-11
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash