Android开发:TextView显示摘要遇Expression expected错误,求替代语法
解决TextView展示摘要时的“Expression expected”错误
先看你遇到的问题,“Expression expected”一般是语法结构不合法导致的,结合你的代码片段,我帮你梳理几个可能的原因和修复方案:
1. 检查return语句的位置
return只能在方法内部使用,如果你的return summary写在了方法外面(比如类的直接代码块里),就会触发这个错误。一定要确保return是在某个处理摘要的方法(比如buildSummary())内部。
2. 补全未完成的代码片段
你的代码里if(setSummarySentences.contains(sen...明显没写完,应该是contains(sentence)吧?这种未闭合的语法会直接让编译器报错,先把这部分补全:
// 从选定句子构建摘要 String summary = ""; summary = summary + "• " + firstSentence + System.getProperty("line.separator") + System.getProperty("line.separator"); for(String sentence : sentences) { // 遍历sentences列表中的每个字符串sentence if(setSummarySentences.contains(sentence)) { // 补全contains的参数和条件闭合 // 这里添加符合条件的句子拼接逻辑 summary += "• " + sentence + System.getProperty("line.separator") + System.getProperty("line.separator"); } } // 确保return在方法内部 return summary;
3. 正确给TextView设置文本
return是用来返回方法值的,不能直接用它给TextView赋值。拿到正确的summary后,要通过setText()方法设置:
TextView summaryTv = findViewById(R.id.your_textview_id); summaryTv.setText(summary);
4. 优化代码的小建议
频繁用+拼接字符串会创建很多临时对象,建议用StringBuilder来优化性能:
StringBuilder summaryBuilder = new StringBuilder(); summaryBuilder.append("• ") .append(firstSentence) .append(System.getProperty("line.separator")) .append(System.getProperty("line.separator")); for(String sentence : sentences) { if(setSummarySentences.contains(sentence)) { summaryBuilder.append("• ") .append(sentence) .append(System.getProperty("line.separator")) .append(System.getProperty("line.separator")); } } String summary = summaryBuilder.toString(); return summary;
先把这些语法问题修复,应该就能解决“Expression expected”的错误了,如果还有问题,可以把完整的方法代码贴出来,我再帮你排查~
内容的提问来源于stack exchange,提问作者Ibukun
相关产品推荐
相关产品推荐

