在Android中编程,大多数文本值都在CharSequence中。
为什么呢?使用CharSequence而不是String的好处是什么,主要影响是什么?
在使用它们和从一种转换到另一种时,主要的区别是什么,预期会出现什么问题?
在Android中编程,大多数文本值都在CharSequence中。
为什么呢?使用CharSequence而不是String的好处是什么,主要影响是什么?
在使用它们和从一种转换到另一种时,主要的区别是什么,预期会出现什么问题?
当前回答
CharSequence是一个可读的字符值序列,它实现了String。它有4个方法
charAt (int指数) 长度() 子序列(int start, int end) toString ()
请参考CharSequence文档
其他回答
我认为最好使用CharSequence。原因是String实现了CharSequence,因此你可以传递一个String到一个CharSequence,然而你不能传递一个CharSequence到一个String,因为CharSequence不实现String。此外,在Android中,EditText.getText()方法返回一个可编辑的,它也实现了CharSequence,可以很容易地传递到一个,而不容易传递到字符串。CharSequence处理所有!
在实际的Android代码中出现的一个问题是将它们与CharSequence进行比较。Equals是有效的,但不一定像预期的那样工作。
EditText t = (EditText )getView(R.id.myEditText); // Contains "OK"
Boolean isFalse = t.getText().equals("OK"); // will always return false.
应由
("OK").contentEquals(t.GetText());
一般来说,使用接口允许您以最小的附带损害改变实现。虽然java.lang.String非常流行,但在某些情况下,人们可能想使用另一种实现。通过围绕CharSequences而不是string构建API,代码提供了这样做的机会。
字符串是CharSequences,所以你可以只使用字符串,不用担心。Android只是试图通过允许你指定其他CharSequence对象来提供帮助,比如stringbuffer。
CharSequence是一个可读的字符值序列,它实现了String。它有4个方法
charAt (int指数) 长度() 子序列(int start, int end) toString ()
请参考CharSequence文档