面试题09:Calculate mean and concatenate string

You will be given an array which will include both integers and characters.
Return an array of length 2 with a[0] representing the mean of the ten integers as a floating point number. There will always be 10 integers and 10 characters. Create a single string with the characters and return it as a[1] while maintaining the original order.
lst = [‘u’, ‘6’, ‘d’, ‘1’, ‘i’, ‘w’, ‘6’, ‘s’, ‘t’, ‘4’, ‘a’, ‘6’, ‘g’, ‘1’, ‘2’, ‘w’, ‘8’, ‘o’, ‘2’, ‘0’]
Here is an example of your return
[3.6, “udiwstagwo”]

这个题目主要是在于判断char是一个字母还是数字,JDK中存在相关的方法,另外一个是要对于数据类型的变化重视。

public class Kata {
    public static Object[] mean(char[] lst){
        double args = 0.0;
        String sb = "" ;
       for(char i : lst){
           if (Character.isDigit(i)){
               args += Double.parseDouble(String.valueOf(i));
           }else{
               sb += String.valueOf(i);
           }
       }
       return new Object[]{args/10 ,sb.toString()};
    }
    @Test
    public void mean_BasicTest1() {
        Object[] expectedResult = new Object[] {3.6, "udiwstagwo"};
        assertArrayEquals(expectedResult, Kata.mean(new char[] {'u', '6', 'd', '1', 'i', 'w', '6', 's', 't', '4', 'a', '6', 'g', '1', '2', 'w', '8', 'o', '2', '0'}));
    }

    @Test
    public void mean_BasicTest2() {
        Object[] expectedResult = new Object[] {3.0, "cxwyvuhinu"};
        assertArrayEquals(expectedResult, Kata.mean(new char[] { '0', 'c', '7', 'x', '6', '2', '3', '5', 'w', '7', '0', 'y', 'v', 'u', 'h', 'i', 'n', 'u', '0', '0'}));
    }
    @Test
    public void mean_BasicTest3() {
        Object[] expectedResult = new Object[] {4.3, "uayaqvgydd"};
        assertArrayEquals(expectedResult, Kata.mean(new char[] {'0', 'u', 'a', 'y', '0', 'a', '9', 'q', '3', 'v', 'g', '7', '6', '4', 'y', 'd', '8', '6', '0', 'd'}));
    }  
    @Test
    public void mean_BasicTest4() {
        Object[] expectedResult = new Object[] {4.0, "snlmizyzkk"};
        assertArrayEquals(expectedResult, Kata.mean(new char[] {'s', 'n', '9', 'l', '0', 'm', 'i', 'z', '9', '7', 'y', '4', 'z', '3', '3', 'k', '4', '1', '0', 'k'}));
    }
    @Test
    public void mean_BasicTest5() {
        Object[] expectedResult = new Object[] {6.1, "vukbgzfuit"};
        assertArrayEquals(expectedResult, Kata.mean(new char[] {'5', 'v', 'u', 'k', '8', '4', '9', 'b', '9', 'g', '5', 'z', '3', 'f', '6', 'u', 'i', '6', '6', 't'}));
    }   
    @Test
    public void mean_BasicTest6() {
        Object[] expectedResult = new Object[] {0.9, "aaddgquvyy"};
        assertArrayEquals(expectedResult, Kata.mean(new char[] {'1', '1', '1', '1', '1', '1', '1', '1', '1', '0', 'a', 'a', 'd', 'd', 'g', 'q', 'u', 'v', 'y', 'y'}));
    }   
    @Test
    public void mean_BasicTest7() {
        Object[] expectedResult = new Object[] {1.0, "aaddgquvyy"};
        assertArrayEquals(expectedResult, Kata.mean(new char[] { '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', 'a', 'a', 'd', 'd', 'g', 'q', 'u', 'v', 'y', 'y'}));
    }  
}

也可以是这种:

public class Kata
{
    public static Object[] mean(char[] lst)
    {
      double mean = 0;
        String string = "";

        for(char character : lst)
        {
            if(Character.isDigit(character))
                mean += Character.digit(character, 10);
            else
                string += character;
        }
        mean /= 10d;

        Object[] oggetto = {mean,string};

        return oggetto;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值