import java.util.*;
import java.math.BigInteger;
public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     * 返回最大和的字符串
     * @param x string字符串 即题目描述中所给字符串
     * @param k int整型 即题目描述中所给的k
     * @return string字符串
     */
 public   String Maxsumforknumers (String x, int k) {
            // write code here
        String a="";
        char [] xx=x.toCharArray();
        Arrays.sort(xx);
        BigInteger bi=new BigInteger("0");
       // System.out.println(xx);
        for(int i=xx.length-1;i>=0;i--) {
            if(i>k-1)
                a+=xx[i];
            else if(i==k-1)
            {
                a+=xx[i];
                BigInteger bi2=new BigInteger(a);
                bi=bi.add(bi2);
            }
            else {
                BigInteger bi3=new BigInteger(xx[i]+"");
                bi=bi.add(bi3);
            }

        }
        return bi.toString();
    }

}

1.将字符串转为char数组
2.用Arrays.sort()进行排序,现在最大的数都排在后面
3.要k个数相加和最大,则先从后往前取到第k-1个数,再将剩下的数一个一个加起来,直接用大整数相加BigInteger.add(),方便快捷