Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 唐´;我不知道如何将字符串转换成字节数组_Java - Fatal编程技术网

Java 唐´;我不知道如何将字符串转换成字节数组

Java 唐´;我不知道如何将字符串转换成字节数组,java,Java,我有下一个任务,我需要创建一个将字符串对象的de字符写入字节数组的代码 首先我必须向用户请求一个字符串,然后我必须创建te字节数组,这个数组的第一个位置必须包含一个计数器 数组包含字符串中每个字符的ASCII码,计数器包含字符串的长度,我必须使用String.getBytes()方法 问题是,我不知道我是否正确使用getBytes()方法将字符串转换为bytearray,同时将数组的字符数放在第一个位置 问题是,我不知道我是否正确使用getBytes()方法将字符串转换为bytearray,同时

我有下一个任务,我需要创建一个将字符串对象的de字符写入字节数组的代码

首先我必须向用户请求一个字符串,然后我必须创建te字节数组,这个数组的第一个位置必须包含一个计数器

数组包含字符串中每个字符的ASCII码,计数器包含字符串的长度,我必须使用String.getBytes()方法

问题是,我不知道我是否正确使用getBytes()方法将字符串转换为bytearray,同时将数组的字符数放在第一个位置

问题是,我不知道我是否正确使用getBytes()方法将字符串转换为bytearray,同时将数组的字符数放在第一个位置

不,你不是

如果您阅读了
String.getBytes()
的javadoc,它会告诉您,它返回一个新分配的字节数组,该数组以字节编码的表示形式包含字符串。编码字符串的第一个字节将位于数组的偏移量0处。这不是你(最终)结果所需要的

此外,您编写的内容将创建一个1字节数组,然后丢弃它

此问题要求您分配第二个数组(大小正确),然后将字节从第一个数组传输到第二个数组的正确位置。至少有几种方法可以做到这一点。(提示:其中一个涉及到对循环进行编码。)


还有一个细节你错过了。这个问题特别需要将字符的ASCII码放入数组中,但是getBytes()不一定将字符编码为ASCII码。(再看一遍javadoc,答案就在那里。)

你读过javadoc吗?真正的问题是:如果你输入了一个多位数的数字,你就不会在索引0中有你关心的数字。否则,您的方法看起来很好(您确实声明了一个不必要的变量
l
,它在我看来就可以消失了)。我认为您需要
System.arraycopy
。@DavidWallace-或者一个循环。
import java.util.Scanner;
public class ByteArray {

    public static void main(String[] args) 
    {
        int l;
        String string;
        Scanner read = new Scanner(System.in);
        System.out.print("String: ");
        string= read.nextLine();
        l = string.length()+1;
        byte arrayBytes[] = new byte[l];
        arrayBytes = string.getBytes();
        arrayBytes[0] = l;
    }
}