字符串处理面试题-华为等公司java(1)
2014-08-06 19:05
429 查看
package simple; import java.util.Scanner; public class StringDeal { public static void main(String[] args) { Scanner scann = new Scanner(System.in); String s = scann.nextLine(); String d = compressStr(s); System.out.println(d); System.out.print(d.length()); System.out.println(strstrp(s,"bbc")); } /** * 功能:压缩字符串(aaabbccc --> a3b2c3) * @param String:s * @return * @author xjp */ public static String compressStr(String s){ char[] c = s.toCharArray(); char[] tmp = new char[2*c.length]; tmp[0] = c[0]; int j=1,k=1; for(int i=1;i<c.length;i++){ if(c[i] != c[i-1]){ char[] ktmp = String.valueOf(k).toCharArray(); for(int t=0; t<ktmp.length; t++){ tmp[j]= ktmp[t]; j++; } tmp[j] = c[i]; k=1; j++; }else{ k++; continue; } } char[] ktmp = String.valueOf(k).toCharArray(); for(int t=0; t<ktmp.length; t++){ tmp[j]= ktmp[t]; j++; } String newstr = String.valueOf(tmp, 0, j); return newstr; } /** * 功能:求主串中字符子串的位置以后的子串(fffggbbckkll bbc --> bbckkll) * @param Stirng:str * @param String:sub * @return * @author xjp */ public static String strstrp(String str,String sub){ for(int i=0; i<str.length();i++){ int j=0; int tmp=i; if(str.charAt(i)==sub.charAt(j)){ while(str.charAt(i)==sub.charAt(j)){ if(sub.length()==(j+1)) return str.substring(i-j); i++; j++; } i=tmp; } } return null; } /** * 功能:倒数m个字符,移动字符串(ABCDEFGHI,M=3 --> GHIABCDEF) * @param ss * @param M * @return * @author xjp */ public static String moveStr(String ss,int M){ char[] s = ss.toCharArray(); int i = 0; char tmp; int len = s.length; if(M>len) M = len; while(len>M){ for(i=0,tmp=s[0],M++;i<len-1;i++){ //整个字符左移一次 s[i] = s[i+1]; } s[len-1]=tmp; } String news = String.valueOf(s); return news; } }
相关文章推荐
- JAVA经典面试题---字符串的处理
- 华为上机 字符串合并处理 java
- (华为机试大备战)java。多了解了解最常用的那个类库的方法对处理字符串的方法
- 华为2013机试题Java解(重复字符串的处理操作)
- 互联网公司校招Java面试题总结及答案——乐视、滴滴、华为
- 某公司Java面试题及部分解答(难度较大)
- JAVA华为中远面试题
- 公司要招人,我帮经理准备了一道面试题,考Java基础的
- 华为的java面试题
- (转)java华为面试题
- JAVA华为面试题
- Java华为面试题
- 某公司的JAVA面试题
- JAVA面试题之String处理--一字符取出重复的字符以及其个数
- Java:处理字符串
- Java对象创建和初始化过程,处理字符串的机制
- 华为的JAVA面试题
- java华为面试题
- JAVA-字符串处理中的重点
- 华为(2007年3月)一道面试题: c语言删除一个字符串中的第i个字符后的j个字符