如何从字符串中提取特定字符

时间:2014-08-31 20:00:29

标签: java char bufferedreader getchar

我正在开发一个项目,我必须从文件中读取数据并将数据存储到字符串数组中。

字符串数组位置" 0"应该有文件的前13个字符,字符串数组位置" 1"应该有该文件的下13个字符。 我尝试使用getchar()只读取前13个字符,但我在使用它时遇到问题,任何人都可以指出我的错误,因为当我尝试在应用程序上运行时,应用程序崩溃。

   InputStream is = getResources().openRawResource(R.raw.temp);
   BufferedReader br = new BufferedReader(new InputStreamReader(is));
            try {

                while((string = br.readLine()) != null){
                string.getChars(0,13, buffer, 0);
                    String str = new String(buffer);
                    text.setText(str);  

                }

            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            break;

这里,buffer是一个char类型的数组。

2 个答案:

答案 0 :(得分:0)

使用String.substring(startIndex, endIndex)检索字符串的一部分。

答案 1 :(得分:0)

当您尝试将字符串拆分为13个字符的块时,为什么要使用readLine

String str = "Some string that may or may not be longer than 13 characters";
int LENGTH = 13, off_multiplier = 0, read_size;    
char [] buffer = new char[LENGTH];

ArrayList<String> string_array = new ArrayList<String>();

InputStream is = new ByteArrayInputStream(str.getBytes());
try(BufferedReader reader = new BufferedReader(new InputStreamReader(is))){
    while( (read_size = reader.read(buffer, off_multiplier * LENGTH ,LENGTH)) != -1){
        string_array.add(new String(buffer,0,read_size));
    }
}