`
myclover
  • 浏览: 191244 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

一些java程序员面试笔试常见的题

    博客分类:
  • java
阅读更多
在群里经常碰到很多找工作的朋友回来就谈论自己的面试经历,被问到或者笔试过程中碰到的一些题目,下面把前两天几个朋友提出的问题进行简单的实现下,希望各位大虾指教!代码如下所示:

package com.myclover.exam;

public class Exam {
	
private static final char[] SRC_NUMS = "零一二三四五六七八九".toCharArray();
	
	/**
     * 功能说明:把阿拉伯数字转换成中文的数字,即1-->一,10-->十
     * @author myclover
     * @param num 传入一个阿拉伯数字,正整数
     * @return  返回值:返回对应的中文数字
     */
    public static String convertIntToString(int num){
		String sNum = String.valueOf(num);
		StringBuffer numSb = new StringBuffer();
		for(int i = sNum.length() - 1 , j = 0 ; i >= 0 ; i-- , j++){
			char ch = sNum.charAt(i);
			if(ch == '0'){
				if(i < sNum.length() - 1 && sNum.charAt(i + 1) != '0'){
					numSb.append(SRC_NUMS[0]);
				}
			}else{
				if(j == 1){
					numSb.append("十");
					//这里表示的是11-19,去掉前面的一,变成十几
					if(i == 0 && ch == '1'){
						continue;
					}
				}else if(j == 2){
					numSb.append("百");
				}
				numSb.append(SRC_NUMS[ch - '0']);
			}
		}
		return numSb.reverse().toString();
	}
    

	/**
	 * 功能描述:对一个正整数进行反转输出
	 *          一个朋友在群里聊到面试被问了这样一个题目,对一个正整数进行逆序输出,需要使用递归实现,例如传入:12345,则返回:54321
	 * @author myclover
	 * @param n 传入的正整数
	 * @return
	 */
	public static int reverseInts(int n){
		String str = String.valueOf(n);
		if(n < 0 || str.length() > 10){
			return -1;
		}
		if(str.length() == 1){
			return n;
		}else if(str.length() > 1){
			char ch = str.charAt(str.length() - 1);
			String s = str.substring(0, str.length() - 1);
			return (Character.digit(ch, 10) * (int)Math.pow(10, str.length() - 1)) + reverseInts(Integer.parseInt(s)) ;
		}
		return -1;
	}
	
	
	/**
	 * 功能描述:写一个方法,实现字符串转换为int类型,不能使用Integer包装类
	 * @author myclover
	 * @param str  传入的字符串
	 * @return
	 */
	public static int converStrToInt(String str){
		if(str.length() > 10){
			return -1;
		}
		int re = 0;
		int count = str.length();
		boolean isNegative = false;
		for(int i = 0 ; i < str.length() ; i++){
			if(str.charAt(i) == '-'){
				isNegative = true;
				count-- ;
				continue;
			}
			if(str.charAt(i) == '+'){
				isNegative = false;
				count-- ;
				continue;
			}
			count-- ;
			int s = Character.digit(str.charAt(i), 10);
			re += s * (int)Math.pow(10, count);
		}
		if(isNegative){
			return -re;
		}
		return re;
	}
	
	
	/**
	 * 功能描述:对传入的字符串进行逆序输出,不能使用Java API自带的反转方法
	 * @author myclover
	 * @param str  传入的字符串
	 * @return
	 */
	public static String convertStrToStr(String str){
		StringBuffer sb = new StringBuffer("");
		if(str.length() == 1){
			return str;
		}else if(str.length() > 1){
			return sb.append(str.substring(str.length() - 1)).append(convertStrToStr(str.substring(0, str.length() - 1))).toString();
		}
		return null;
	}
	
	
}


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics