【问题标题】:Alternative to stream for converting Charsequence to String将字符序列转换为字符串的流的替代方法
【发布时间】:2019-04-03 06:00:56
【问题描述】:

我正在 Android Studio 中编写一个移动应用程序。 我有一个 arrayList ,我将其转换为要在脚本引擎中评估的字符串。

我正在使用

    resultText = total.stream().collect(Collectors.joining(""));

总存在

    ArrayList<CharSequence> total = new ArrayList<>();

当前输入输出是这样的

    CharSequence [1,+,2] --> .Stream() "1+2" --> .eval 3.0

是否有其他方法可以获取此输出?我目前使用 API 级别 28 来访问流,但我要求最低 API 级别为 19。

.ToString() 方法没有得到所需的输出。

    CharSequence [1,+,2] --> .ToString "[1,+,2]" --> .eval NULL

任何帮助将不胜感激。

【问题讨论】:

  • 如果你在谈论java.lang.CharSequence,那么total.toString() 会做你想做的事。
  • 您说您在第一段中将ArrayList 转换为String,然后您说totalCharSequence。那么,它是ArrayList 还是CharSequence
  • total 是一个 ArrayList。我会更新问题以使其更清楚。 total.ToString 保留 ArrayLists 结构中的方括号和逗号,并且将无法被 ScriptEngine 评估。

标签: java android string charsequence


【解决方案1】:

您可以使用以下内容:

resultText = total.toString(); // where total is CharSequence Array.

你的 eval 函数应该可以用这个。

【讨论】:

  • “CharSequence Array”是什么意思?不就是一个 CharSequence 吗?
【解决方案2】:

您可以使用TextUtils 类。

List<Character> list = new ArrayList<>(Arrays.asList(
        '1', '+', '2'
));

String result = TextUtils.join("", list);

基础 od documentation 方法 join()Added in API level 1

【讨论】:

  • 这个功能与 Java 8 中的 String.join() 完全相同。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-08-31
  • 1970-01-01
  • 2018-01-03
  • 2014-06-25
  • 1970-01-01
相关资源
最近更新 更多