首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java帮助:字符编码帮助- int to String

Java帮助:字符编码帮助- int to String
EN

Stack Overflow用户
提问于 2011-09-05 10:12:35
回答 2查看 566关注 0票数 1

我正在尝试使用java.io.OutputStream的write( int )方法,但是我不知道如何正确地将int转换回字符串。

代码语言:javascript
复制
public PrintWriter out = new PrintWriter(new OutputStream() {

    @Override
    public void write(int b) throws IOException {
        outputField.setText(/* I need a byte[] or char[] or string from this int */);
    }

});

我真的需要这方面的帮助。我试着用一种方法从一个整数中生成一个byte[],但是它把文本弄得乱七八糟,有很多空格。

EN

回答 2

Stack Overflow用户

发布于 2011-09-05 10:18:24

你试过这个吗?

代码语言:javascript
复制
outputField.setText(""+b);

代码语言:javascript
复制
outputField.setText(Integer.valueOf(b).toString());
票数 0
EN

Stack Overflow用户

发布于 2011-09-05 10:57:03

将OutputStream指向某种图形用户界面中看起来像是文本字段的地方似乎非常奇怪。你确定那是你真正想要的吗?如果您想要捕获正在写入Writer的内容,StringWriter通常是合适的。您只需让写入发生,然后在其上调用toString()以获得最终结果。如果你真的在寻找一种方法,可以在文本字段写入Writer/OutputStream时将其写入文本字段,那么可以查看以下内容:

代码语言:javascript
复制
public static void main(String[] args) throws Exception {
    JFrame frame = new JFrame("I be streamin!");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    JTextField field = new JTextField();
    frame.add(field);
    frame.pack();
    frame.setVisible(true);

    System.out.println("Enter stuff to write to the field");
    char c;
    InputStreamReader in = new InputStreamReader(System.in, "UTF-8");
    while ((c = (char) in.read()) != -1) {
        String currentText = field.getText();
        field.setText(currentText + c);
        Thread.sleep(250);
    }
}

注1:使用正确的编码代替UTF-8。

注2:虽然我使用Thread.sleep()减慢了速度,但每次向字段写入一个字符本身就有点浪费,因为您经常创建和丢弃String。做一些少量的缓冲,像我前面提到的使用StringWriter,可能是一种更好的方法,除非你想要让内容在读入时显示出来的“实时提要”感觉。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7303341

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档