基本的Java程序提供错误的输出

时间:2015-10-12 18:40:12

标签: java

运行此代码后,我只得到空格,甚至不打印"ABC" ..

import java.io.*;
class Str{
  public static void main( String args[])
  {
    String a = "abc";
    char ch[] = new char[2];
    a.getChars(0,0,ch,1);
    PrintWriter pw = new PrintWriter(System.out);
    pw.println(ch);
    pw.println("ABC");
    pw.println(ch);
    System.out.println(ch);
  }
}

2 个答案:

答案 0 :(得分:2)

getChars使用参数(int srcBegin,int srcEnd,char [] dest,int destBegin)。你的srcBegin和srcEnd都是0。 在你的情况下,srcBegin需要为0,但srcEnd需要为3。

这有效:

def self.search(params)
  promotions = Promotion.all
  ????
end

你需要一个长度为3而不是2的字符数组,所以将a.getChars(0,3,ch,0); 更改为char ch[]=new char[2]

仅将第一个字符复制到索引1处的ch数组中:

char ch[]=new char[3]

答案 1 :(得分:1)

似乎你缺少调用pw.flush(),然后出现了一些东西。那应该是你的计划的结果。您可能必须根据此Java tutorial更改String.getChars()方法中的参数,因为您正在接收一个空数组。

    String a="abc";
    char ch[]=new char[2];
    a.getChars(1,2,ch,1); //Put indexes to first 2 positions to mark srcBegin, srcEnd
    PrintWriter pw=new PrintWriter(System.out);
    pw.println(ch);
    pw.println("ABC");
    pw.println(ch);
    pw.flush();