相关疑难解决方法(0)

如何将Java String转换为byte []?

有没有办法将Java转换Stringbyte[](不是盒装Byte[])?

在尝试这个:

System.out.println(response.split("\r\n\r\n")[1]);
System.out.println("******");
System.out.println(response.split("\r\n\r\n")[1].getBytes().toString());
Run Code Online (Sandbox Code Playgroud)

而我正在获得单独的输出.无法显示第一个输出,因为它是一个gzip字符串.

<A Gzip String>
******
[B@38ee9f13
Run Code Online (Sandbox Code Playgroud)

第二个是地址.有什么我做错了吗?我需要将结果输入byte[]到gzip解压缩程序中,如下所示.

String decompressGZIP(byte[] gzip) throws IOException {
    java.util.zip.Inflater inf = new java.util.zip.Inflater();
    java.io.ByteArrayInputStream bytein = new java.io.ByteArrayInputStream(gzip);
    java.util.zip.GZIPInputStream gzin = new java.util.zip.GZIPInputStream(bytein);
    java.io.ByteArrayOutputStream byteout = new java.io.ByteArrayOutputStream();
    int res = 0;
    byte buf[] = new byte[1024];
    while (res >= 0) {
        res = gzin.read(buf, 0, buf.length);
        if (res > 0) {
            byteout.write(buf, 0, res);
        }
    }
    byte uncompressed[] = …
Run Code Online (Sandbox Code Playgroud)

java arrays string

503
推荐指数
6
解决办法
98万
查看次数

如何在Java中进行URL解码?

在Java中,我想转换它:

https%3A%2F%2Fmywebsite%2Fdocs%2Fenglish%2Fsite%2Fmybook.do%3Frequest_type
Run Code Online (Sandbox Code Playgroud)

对此:

https://mywebsite/docs/english/site/mybook.do&request_type
Run Code Online (Sandbox Code Playgroud)

这是我到目前为止:

class StringUTF 
{
    public static void main(String[] args) 
    {
        try{
            String url = 
               "https%3A%2F%2Fmywebsite%2Fdocs%2Fenglish%2Fsite%2Fmybook.do" +
               "%3Frequest_type%3D%26type%3Dprivate";

            System.out.println(url+"Hello World!------->" +
                new String(url.getBytes("UTF-8"),"ASCII"));
        }
        catch(Exception E){
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但它不能正常工作.这些%3A%2F格式被称为什么以及如何转换它们?

java url-encoding

311
推荐指数
7
解决办法
39万
查看次数

为什么charset名称不是常量?

Charset问题本身令人困惑和复杂,但最重要的是你必须记住你的charsets的确切名称.是"utf8"吗?还是"utf-8"?或许"UTF-8"?在互联网上搜索代码示例时,您将看到以上所有内容.为什么不将它们命名为常量并使用Charset.UTF8

java character-encoding

209
推荐指数
5
解决办法
7万
查看次数

`Enum.name()`和`Enum.toString()`有什么区别?

阅读文档后String java.lang.Enum.name()我不确定我何时使用name()以及何时使用toString().

返回此枚举常量的名称,与其枚举声明中声明的完全相同.大多数程序员应优先使用toString方法,因为toString方法可能会返回一个更加用户友好的名称.此方法主要用于特殊情况,其中正确性取决于获取确切名称,该名称在不同版本之间不会有所不同.

特别是,即使文档说更喜欢toString(),Java自己的StandardLocation枚举name也会在我认为文档建议不同时使用.

public String getName() { return name(); }
Run Code Online (Sandbox Code Playgroud)

另外Enum实现toString()为,

public String toString() {
    return name;
}
Run Code Online (Sandbox Code Playgroud)

我无法想到用户定义的枚举会覆盖的toString()情况name(),toString()并且几乎总是完全相同.

  1. 你能解释为什么忽略文档并总是使用name()是一个坏主意?
  2. "从发布到发布不会有所不同"这句话怎么样?如果名称不会改变,它是否暗示java.lang.Enum.toString()会这样?

java enums

107
推荐指数
3
解决办法
11万
查看次数

发现依赖于默认编码

我正在从FindBugs获得以下bug,

发现依赖于MyClass.print(String)中的默认编码:String.getBytes()

方法

protected void print (String str) {
{
private OutputStream outStream = null;
.....
outStream.write(str.getBytes());
.......
}
Run Code Online (Sandbox Code Playgroud)

请告诉我这是什么错误?我们如何解决这个问题?

提前致谢

findbugs

51
推荐指数
1
解决办法
5万
查看次数