我可以这样创建AttributedString
:
AttributedString as = new AttributedString("Hello world");
直截了当的问题-如何从AttributedString对象获取基础文本(“ Hello world”)?
as.toString()
产生字符串“ java.text.AttributedString@65f00565”我在
AttributedString.class
中看到此信息已存储,但故意设为私有-所有(长度除外)读取操作都是私有的,
由于AttributedString实例是通过迭代器访问的
如此看来,我需要使用
as.getIterator()
来获取AttributedCharacterIterator
并对其进行迭代以生成基础字符串?这是最好的方法吗?为什么这么难获得这些信息? 最佳答案
好吧,这是执行您要求的实际代码:
AttributedString s = new AttributedString("Hello");
AttributedCharacterIterator x = s.getIterator();
String a = "";
a+=x.current();
while (x.getIndex() < x.getEndIndex())
a += x.next();
a=a.substring(0,a.length()-1);
System.out.println(a);
至于适当性,我参考
AttributedString
的文档,特别是getIterator()
方法的文档:创建一个AttributedCharacterIterator实例,该实例提供对该字符串的全部内容的访问。
似乎没有其他方法可以访问实际的
String
内容。