2014-08-31 208 views
-1

我正在处理一个项目,在该项目中,我必须从文件中读取数据并将该数据存储到字符串数组中。如何从字符串中提取特定字符

字符串数组位置“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型数组。

+1

什么是期望的语言? – pikausp 2014-08-31 20:08:02

+0

是Java还是什么? – qbit 2014-08-31 20:08:42

+0

是的,它的Java,我正在做Android编程,我是新来的。 – Asad 2014-08-31 20:15:17

回答

0

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

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)); 
    } 
} 
+0

你的代码中的str是什么? – Asad 2014-09-03 14:19:16

+0

@Asad这是你想分割的字符串,看起来像是我在复制粘贴时修改掉的字符串。 – pikausp 2014-09-03 14:36:17

+0

@Asad那是你以前的样子?如果是,则将其标记为答案,以便其他人知道。 – pikausp 2014-09-10 22:04:12

相关问题