charsequence與string都能用於定義字串,但charsequence的值是可讀可寫序列,而string的值是唯讀序列。
charsequence是實現這個介面的例項 舉例: charsequence str = "dd"; 就是 charsequence str = new string("dd");
charsequence是封裝好的類
這是乙個介面,代表的是乙個有序字元集合,這個介面包含的方法有:charat(int index),tostring(),length(),subsequence(int start,int end).
這裡需要說的一點就是,對於乙個抽象類或者是介面類,不能使用new來進行賦值,但是可以通過以下的方式來進行例項的建立:
charsequence cs="hello";
但是不能這樣來建立:
charsequence cs=new charsequence("hello");
下面來看看乙個例子:
textview tv; //宣告乙個textview型別的變數tv
charsequence cs; //宣告乙個charsequence型別的變數cs
string str; //宣告乙個字串型別的str變數
cs=gettext(r.string.styled_text); //其實這裡使用的this.gettext()方法,即指定上下文的方法
tv=(textview)findviewbyid(r.id.styled_text); //通過給定的id將tv與對應的元件聯絡起來
tv.settext(cs); //使用這句**來設定tv的顯示內容
str=getstring(r.string.styled_text);
tv=(textview)findviewbyid(r.id.plain_text);
tv.settext(str);
context context=this; //這裡使用了context型別的變數context,指定為當前上下文
resources res=context.getresources(); //定義乙個resources型別的變數res,並給它賦值
cs=res.gettext(r.string.styled_text); //獲得r類中指定變數的值
tv=(textview)findviewbyid(r.id.styled_text); //同上
tv.settext(cs); //設定值
CharSequence 詳情介紹
前言 charsequence是乙個介面,比較常見的string stringbuilder stringbuffer都實現了這個介面。當我們看到乙個api裡面有charsequence的時候,它也是可以被其子類代替的,一般用string代替即可。charsequence詳情介紹 charseque...
CharSequence和String的區別
charsequence是乙個字串行介面,實現了string stringbuffer stringbuilder類,所有使用charsequence字串行介面型別的程式都看可使用其不同的實現,簡單的說,就是子類型別,比如常見的string型別,所以呼叫時大部分情況下輸入的都是string型別資料。...
倍增法與st
一篇部落格 最常用,也是最簡單的演算法,實質就是直接對暴力使用倍增優化將複雜度降低達到需求。有樹上的倍增和區間的倍增 depth 為每個節點的深度,fa i j i節點的 2 j 的父親。lg i log 2 1 const int maxn 5000001 int depth maxn fa ma...