今日学习心得之读取资源文件

  1. public class MainActivity extends Activity {
  2.     private ListView lv;
  3.     private List<Question> qs;
  4.     
  5.     @Override
  6.     protected void onCreate(Bundle savedInstanceState) {
  7.         super.onCreate(savedInstanceState);
  8.         setContentView(R.layout.activity_main);
  9.         lv=(ListView)findViewById(R.id.listView1);
  10.         
  11.     }
  12.     private List<Question> parseQuestions() {
  13.         List<Question> qs=new ArrayList<Question>();
  14.         InputStream in=getResources().openRawResource(R.raw.q);
  15.         try {
  16.             BufferedReader reader=new BufferedReader(new InputStreamReader(in, "GBK"));
  17.             String line;
  18.             int i=0;
  19.             Question q=null;
  20.             while((line=reader.readLine())!=null){
  21.                 switch (i++%5) {
  22.                 case 0: //获取到了标题
  23.                     q=new Question();
  24.                     q.setTitle(line);
  25.                     break;
  26.                 case 1: //获取到了选项A
  27.                     q.setA(line);
  28.                     break;
  29.                 case 2: //获取到了选项B
  30.                     q.setB(line);
  31.                     break;
  32.                 case 3: //获取到了选项C
  33.                     q.setC(line);
  34.                     break;
  35.                 case 4: //获取到了选项D
  36.                     q.setD(line);
  37.                     qs.add(q);
  38.                     break;
  39.                 }
  40.             }
  41.         } catch (IOException e) {
  42.             e.printStackTrace();
  43.             return null;
  44.         }
  45.         return qs;
  46.     }
核心,  InputStream in = getResources (). openRawResource ( R . raw . q );     
      BufferedReader reader = new BufferedReader ( new InputStreamReader ( in , "GBK" ));
按行读取。


2.  int j=0;
                for(int i=0;i<100;i++){
                j=j++;
                }
                System.out.println(j);  输出:0


  j=j++ 这个属于后++; 后++的运算原理是 先将值+1,然后将+1前的值赋值给=前面的变量;
  j=j++ 其实等于 坐了如下2个操作:

  1:j自己增加1 变成1;
  2 : 然后将自增前的0又赋值给j 所以j=j++ 始终为 0
  un 设计的 JVM 工作就是 他是先执行 ++ 然后再赋值(而且赋的值是自增前的值),
人家规定好的 不是我们能改变的 执行顺序固定死了

改成 j =++j 结果就不是0了,输出100


int j=0;for(int i=1;i<100;i++) j=j++;c++里得到j结果和c#里怎么不一样?
c++里是99;
c#里是0;
Java里也是0;
C++ 传值调用
C#,Java 传引调用.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值