面试编程题

1、创建一个静态方法,给它传入一个对象,请循环的打印出该对象所在类的类名和所实现的方法名(华为笔试最后一道编程)
2、假设字符串类似这样的aba和aab就相等,现在随便给你二组字符串,请编程比较他们看是否相等
3、给你一组字符串如:iu7i8hy4jnb2,让你编程输出里面的数字:7842
4、给你一组字符串让你把它倒叙输出

5、给你一组字符如{1,3,4,7,2,1,1,5,2},让你输出里面出现次数最多且数值最大的一个,出现几次

今天比较闲,试了一下:

 public static void findMaxChar(){
		//给你一组字符如{1,3,4,7,2,1,1,5,2},让你输出里面出现次数最多且数值最大的一个,出现几次
		char[] chars = new char[]{'1','3','4','7','2','1','1','5','2'};
		Arrays.sort(chars);
		char maxChar = 0;
		int maxCount = 0;
		String newStr= new String(chars);
		for (int i = 0,len = chars.length; i < len; i++) {
			int firstIndex = newStr.indexOf(chars[i]);
			int lastIndex = newStr.lastIndexOf(chars[i]);
			int tempCount = (lastIndex - firstIndex)+1;
			if(maxCount < tempCount){
				maxChar = chars[i];
				maxCount = tempCount;
			}
		}
		System.out.println(newStr);
		System.out.println("maxChar="+maxChar+";maxCount ="+maxCount);
   }
	
	//给你一组字符串如:iu7i8hy4jnb2,让你编程输出里面的数字:7842
	public static void findNumber(){
		String str = "iu7i8hy4jnb2";
		Pattern pattern = Pattern.compile("[0-9]");
		Matcher matcher = null;
		StringBuilder sb = new StringBuilder();
		for (int i = 0,len = str.length(); i < len; i++) {
			String tempStr = str.substring(i,i+1);
			matcher = pattern.matcher(tempStr);
			if(matcher.matches()){
				sb.append(tempStr);
			}
		}
		System.out.println(sb.toString());	
		
		
	}

	//给你一组字符串让你把它倒叙输出
	public static void writeOther(){
		String str = "hello world";
		StringBuilder sb = new StringBuilder();
		for (int i = str.length(),len = str.length(); i > 0; i--) {
			String tempStr = str.substring(i-1,i);
			sb.append(tempStr);
		}
		System.out.println(sb.toString());
	}
	
	
	//创建一个静态方法,给它传入一个对象,请循环的打印出该对象所在类的类名和所实现的方法名(华为笔试最后一道编程)
	public static void printClass(){
		Class<?> clazz = String.class;
		String className = clazz.getSimpleName();
		System.out.println("className = "+ className);
		Method[] methods = clazz.getDeclaredMethods();
		for (Method method : methods) {
			System.out.println(method.getName());
		}
		
	}
	
	//假设字符串类似这样的aba和aab就相等,现在随便给你二组字符串,请编程比较他们看是否相等
	public static boolean judge(String str1,String str2){
		System.out.println("string :"+str1+","+str2);
		if(str1.equals(str2)){
			return true;
		}
		if(str1.length() != str2.length()){
			return false;
		}
		char[] v1 = str1.toCharArray();
		char[] v2 = str2.toCharArray();
		Arrays.sort(v1);
		Arrays.sort(v2);
		if(new String(v1).equals(new String(v2)))
			return true;
		return false;
		
	}


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值