实验4 串操作_第1页
实验4 串操作_第2页
实验4 串操作_第3页
实验4 串操作_第4页
实验4 串操作_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验报告四 串操作班级: 姓名: 学号: 专业: 一、 实验目的:(1) 掌握串的定义、术语。(2) 掌握串的基本操作算法。(3) 掌握串的匹配算法。二、 实验内容: 1. 在常量串MyString类中,增加以下方法,并求各算法的时间复杂度。public MyString trim()/删除串中所有空格public char toCharArray()/返回字符数组public MyString toLowerCase()/返回将大写字母转换成小写字母的字符串public MyString toUpperCase()/返回将小写字母转换成大写字母的字符串public MyString repl

2、ace(char old, char newc)/用字符newc替换串中的字符oldpublic Boolean equals(Object obj)/判断两个串是否相等public Boolean equalsIgnoreCase(String1 str) /判断两个串是否相等,忽略大小写public int compareTo(MyString str)/比较两个串大小,实现Comparable接口public int compareToIgnoreCase(MyString str) /比较两个串大小,忽略大小写public Boolean startsWith(MyString pre

3、fix)/判断prefix是否前缀子串public Boolean endsWith(MyString suffix)/判断suffix是否前缀子串源代码:package Ex4.Ex4_1;import java.util.Arrays;/* * Created by 74062 on 2017/3/27. */public class MyString implements Comparable public static void main(String args) MyString myString1 = new MyString("a b c d"); MyStr

4、ing myString2 = new MyString("A B C D"); System.out.println(new MyString("a b c d").trim().toString(); System.out.println(mySpareTo(myString2); System.out.println(mySpareToIgnoreCase(myString2); System.out.println(myString1.toUpperCase(); System.out.println(myString1.startsWith(n

5、ew MyString("a "); System.out.println(myString1.endsWith(new MyString(" d"); System.out.println(myString1.replace('a','A'); private final char values; public MyString(char values) this.values = values; public MyString(String string) values = new charstring.length(

6、); for(int i=0;i < string.length();i+) valuesi = string.charAt(i); public MyString trim() char result = new charvalues.length; int count = 0; int j = 0; for(int i=0;i<values.length;i+) if(valuesi != ' ') resultj = valuesi; j+; else count+; result = Arrays.copyOf(result,result.length-co

7、unt); return new MyString(result); public int length() return values.length; public char toCharArray() char temp = new charvalues.length; for(int i=0;i<values.length;i+) tempi = valuesi; return temp; public MyString toLowerCase() char temp = new charvalues.length; for(int i=0 ; i<values.length

8、;i+) if(valuesi>=65&&valuesi<=90) tempi = (char)(valuesi+32); else tempi = valuesi; return new MyString(temp); public MyString toUpperCase() char temp = new charvalues.length; for(int i=0 ; i<values.length;i+) if(valuesi>='a' && valuesi<='z') tempi = (c

9、har)(valuesi-32); else tempi = valuesi; return new MyString(temp); public MyString replace(char old, char newc) char temp = new charvalues.length; for(int i=0;i<values.length;i+) if(valuesi = old ) tempi = newc; else tempi = valuesi; return new MyString(temp); public boolean equals(Object obj) ch

10、ar temp = (MyString)obj).toCharArray(); for(int i=0;i<values.length;i+) if(tempi != valuesi) return false; return true; public Boolean equalsIgnoreCase(MyString str) return this.toLowerCase().equals(str.toLowerCase(); Override public int compareTo(Object o) char chars = (MyString)o).toCharArray()

11、; int length = Math.min(chars.length,values.length); for(int i=0;i<length;i+) if(valuesi-charsi<0) return -1; else if(valuesi-charsi>0) return 1; if(values.length>chars.length) return 1; else if (values.length<chars.length) return -1; else return 0; /* * 比较两个串大小,忽略大小写 * param str * re

12、turn */ public int compareToIgnoreCase(MyString str) return this.toLowerCase().compareTo(str.toLowerCase(); /* * 判断prefix是否前缀子串 * param prefix * return */ public Boolean startsWith(MyString prefix) if(values.length<prefix.length() return false; char chars = prefix.toCharArray(); for(int i=0;i<

13、prefix.length();i+) if(valuesi!=charsi) return false; return true; /* * 判断suffix是否前缀子串 * param suffix * return */ public Boolean endsWith(MyString suffix) if(values.length<suffix.length() return false; char chars = suffix.toCharArray(); int i = this.length()-1; for(int j=suffix.length()-1;j>=0

14、;j-) if(valuesi!=charsj) return false; i-; return true; Override public String toString() StringBuffer stringBuffer = new StringBuffer(); for(int i=0;i<values.length;i+) stringBuffer.append(valuesi); return stringBuffer.toString(); 2. 统计在一个串中各字符的出现次数。源代码:测试实例: str1=“Good morning!” str2=“Shanghai

15、2010”粘贴测试结果:package Ex4.Ex4_2;import java.util.HashMap;import java.util.Map;/* * Created by 74062 on 2017/3/27. */public class Test public static void main(String args) System.out.println(count("Good morning!"); public static Map count(String string) Map<Character,Integer> characterI

16、ntegerMap = new HashMap<Character,Integer>(); for(int i=0;i<string.length();i+) Character character = string.charAt(i); if(characterIntegerMap.containsKey(character) characterIntegerMap.put(character,characterIntegerMap.get(character)+1); else characterIntegerMap.put(character,1); return ch

17、aracterIntegerMap; 3. 找出两个字符串中所有共同的字符。源代码:package Ex4.Ex4_3;import java.util.ArrayList;import java.util.HashSet;import java.util.List;import java.util.Set;/* * Created by 74062 on 2017/3/29. */public class Test public static List<Character> search(String string1, String string2) Set<Charact

18、er> set2 = new HashSet<Character>(); Set<Character> set1 = new HashSet<Character>(); /先统计两个字符串中出现的字符 for(int i =0;i<string1.length();i+) set1.add(string1.charAt(i); for(int i =0;i<string2.length();i+) set2.add(string2.charAt(i); Character chars1 = (Character) set1.toArray(

19、); Character chars2 = (Character) set2.toArray(); List<Character> result = new ArrayList<Character>(); /从出现的字符中作比较查出重复的字符串 for(int i=0;i<chars1.length;i+) for(int j=0;j<chars2.length;j+) if(chars1i = chars2j) result.add(Character) chars1i); return result; public static void main(String args) System.out.println(search("abcdefghl","hello world"); 粘贴测试结果:4. 判断一个字符串是否为一个E-mail地址。源代码:pa

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论