CharSequence與String的區別是什麼

2021-07-04 05:17:24 字數 1271 閱讀 1811

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...