API-Stringtest
来源:互联网 发布:平安 云计算 编辑:程序博客网 时间:2024/06/17 01:56
Q1:获取两个字符串的最大相同子串
public class StringTest_1 { public static void main(String[] args) { /* * 获取两个字符串的最大相同子串。 * 思路: * 1,先明确两个字符串的长短,在长串中判断短串是否存在。 * 2,存在,则说明短串就是最打得相同子串 * 不存在,就将短串按照长度递减的方式,获取短串中的子串并到长串中判断。 * 3,一旦存在,便结束查找。 */ String s1="dajsashdasuditcastddd"; String s2="dsadsffitcastdfdfh"; String maxSubString=getMaxSubstring(s1,s2); System.out.println("maxSubString:"+maxSubString); } private static String getMaxSubstring(String s1, String s2) { String max,min; //明确哪个是长串哪个是短串。 max=(s1.length()>s2.length())?s1:s2; min=max.equals(s1)?s2:s1; for (int i = 0; i < min.length(); i++) { for (int start = 0,end=min.length()-i; end <=min.length(); start++,end++) { String temp=min.substring(start, end); if(max.contains(temp)){ return temp; } } } return null; }}
Q2:对字符串中字符进行自然顺序排序
如”sdfjewqac”—->”acdefjqsw”
public class StringTest_2 { public static void main(String[] args) { /* * 对字符串中字符进行自然顺序排序 * "sdfjewqac"---->"acdefjqsw" * 思路: * 1,把字符串转成数组 * 2,对数组进行排序 * 3,把数组转成字符串 */ String s="sdfjewqac"; System.out.println(s); String s1=sortStringByChar(s); System.out.println(s1); } public static String sortStringByChar(String str) { // 1,将字符串转成数组,转成字符数组// char[] chs=str.toCharArray(); char[] chs=getArray(str); //2,对数据进行排序 /*for (int i = 0; i < chs.length; i++) { for (int j = 0; j < chs.length-i-1; j++) { if(chs[j]>chs[j+1]){ char temp=chs[j]; chs[j]=chs[j+1]; chs[j+1]=temp; } } }*///冒泡排序 sort(chs); //3,对排好序的数据转成字符串 return new String(chs); } private static void sort(char[] chs) { Arrays.sort(chs); } private static char[] getArray(String str) { return str.toCharArray(); }}
Q3:String类的trim()的介绍及代码实现
public class StringTest_3 { public static void main(String[] args) { /* * String类的trim(). * 1,写代码演示该方法的使用。 * 2,trim什么时候使用?用户名,文本框输入,获取用户文本时。 * 3,模拟一下和trim功能一样的函数,参阅源码。 */ String str=" chenshuang "; String s2=str.trim(); String s1=myTrim(str); System.out.println(s1); } /* * 模拟trim功能。 */ public static String myTrim(String str){ //1,定义两个变量,一个记录头的位置,一个记录尾的位置 int start=0; int end=str.length()-1; //2,移动截取的首尾角标 while(start<end&&str.charAt(start)==' '){ start++; } while(start<end&&str.charAt(end)==' '){ end--; } return str.substring(start, end+1); }}
源码实现:
public String trim() { int len = value.length; int st = 0; char[] val = value; /* avoid getfield opcode */ while ((st < len) && (val[st] <= ' ')) { st++; } while ((st < len) && (val[len - 1] <= ' ')) { len--; } return ((st > 0) || (len < value.length)) ? substring(st, len) : this; }
阅读全文
0 0
- API-Stringtest
- StringTest
- StringTest
- c# - StringTest
- ublic class StringTest
- API
- api
- API
- API
- api
- API
- API
- API
- API
- API
- API
- API
- API
- jquery不起作用的原因
- PHP魔术变量
- 深入理解HTTP协议(转)
- CppWindowsService
- 显式动画
- API-Stringtest
- Spring InitializingBean的afterPropertiesSet方法
- 2017-07-05(数位DP:windy数)
- 如何将 iOS 项目的编译速度提高5倍
- 动态规划——洛谷_P1057传球游戏
- Maven POM.xml 标签详解
- C#调用mfc写的Dll出现调用导致堆栈不对称问题
- 数据库——关系代数
- Ajax的运行原理