V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
skywalkboy
V2EX  ›  问与答

java 可变参数转换 String...args 成 byte[]...args

  •  
  •   skywalkboy · 2016-07-07 19:51:31 +08:00 · 2117 次点击
    这是一个创建于 2858 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Java 中 String 的可变参数如何转换成 byte[]的可变参数,如下面例子中 obj.functionB 的入参是 byte[]的可变参数,请问如何转换

    public void functionA(String...args){

     Object obj = new Object();
     //args 如何转换成 functionB 的入参
     obj.functionB(?);
    

    }

    Class Object{

    public void functionB(byte[]...args){
           ......
    }
    

    }

    2 条回复    2016-07-07 20:59:12 +08:00
    hpeng
        1
    hpeng  
       2016-07-07 20:08:43 +08:00   ❤️ 1
    public class test {

    public static void main(String[] args) {
    try {
    ByteArray(StringArrayToBytesArray("utf8", "abc", "def", "fff", "ddd"));
    } catch (UnsupportedEncodingException e) {
    e.printStackTrace();
    }
    }

    public static byte[][] StringArrayToBytesArray(String encoding, String ...strings) throws UnsupportedEncodingException {
    byte[][] bytes = new byte[strings.length][];
    for (int i=0; i<strings.length; i++) {
    bytes[i] = strings[i].getBytes(encoding);
    }
    return bytes;
    }

    public static void ByteArray(byte[] ...args) {
    System.out.println(args.length);
    }
    }
    shyling
        2
    shyling  
       2016-07-07 20:59:12 +08:00   ❤️ 1
    class M{
    void customer(byte[] ...args){};
    void convert(String ...args){
    List<byte[]> list = Stream.of(args).parallel().flatMap(s->Stream.of(s.getBytes())).collect(Collectors.toList());
    byte[][] bs = new byte[list.size()][];
    list.toArray(bs);
    customer(bs);
    }

    }
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   772 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 20:26 · PVG 04:26 · LAX 13:26 · JFK 16:26
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.