V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
skywalkboy
V2EX  ›  问与答

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

  •  
  •   skywalkboy · Jul 7, 2016 · 2806 views
    This topic created in 3581 days ago, the information mentioned may be changed or developed.

    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 replies    2016-07-07 20:59:12 +08:00
    hpeng
        1
    hpeng  
       Jul 7, 2016   ❤️ 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  
       Jul 7, 2016   ❤️ 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);
    }

    }
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3226 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 00:21 · PVG 08:21 · LAX 17:21 · JFK 20:21
    ♥ Do have faith in what you're doing.