如何设置七个字符串的三个字母,有些会是空的

Posted

技术标签:

【中文标题】如何设置七个字符串的三个字母,有些会是空的【英文标题】:How to set three letters of seven strings and some would be empty 【发布时间】:2016-01-22 01:22:16 【问题描述】:

我有一个方法可以获取我的preferences 的一些值并在屏幕上显示TextView。这个preferences 设置在listview 中。用户可以设置一周中的 1 到 7 天,当在checkbox 中选择一个时,一天的名称将在他的偏好中设置。如果没有按任何checkbox 或者如果用户禁用checkbox,我设置一个空字符串。

我的问题是,如果我有超过两天的选择,我必须在textView 中只显示当天的三个首字母。

这是我的代码,我正在尝试这样做.....

提前致谢!

public void refreshDays()
        TextView listDays = (TextView)findViewById(R.id.dayText);

        String monday = HmApplication.prefs().getString(HmApplication.PREF_MONDAY, "");
        String tuesday = HmApplication.prefs().getString(HmApplication.PREF_TUESDAY, "");
        String wednesday = HmApplication.prefs().getString(HmApplication.PREF_WEDNESDAY, "");
        String thursday = HmApplication.prefs().getString(HmApplication.PREF_THURSDAY, "");
        String friday = HmApplication.prefs().getString(HmApplication.PREF_FRIDAY, "");
        String saturday = HmApplication.prefs().getString(HmApplication.PREF_SATURDAY, "Saturday, ");
        String sunday = HmApplication.prefs().getString(HmApplication.PREF_SUNDAY, "Sunday");


//I'm trying to do this, but is not work....
        if(!monday.isEmpty() && !tuesday.isEmpty() && !wednesday.isEmpty())
            listDays.setText(monday.substring(0,3) + tuesday.substring(0,3) + wednesday.substring(0,3) + thursday + friday + saturday + sunday);
        
    

例如,我想在输出中得到这个:

Mon, Wed, Thu, Sat

PS:请注意,输出中没有的字符串是因为该字符串为空,因为用户在设置首选项的复选框中禁用了它。

【问题讨论】:

不确定你的意思.. 我的输出是 listDays。这是我将数据放在屏幕上的地方 你的意思是不起作用。它显示什么???有什么错误吗??如果不是显示的值? 我的意思是如果字符串为空我有一个错误 outOfIndex。因为我可以有一个空字符串或一个带数据的字符串 不清楚。您在哪一行出现错误? @Zahan。我编辑我的问题。现在更清楚了吗? 【参考方案1】:

试试这个.....

StringBuilder s = new StringBuilder();
            s.append(monday.isEmpty() ? "" : monday.substring(0,3))
.
.
.
.

      listDays.setText(s);

【讨论】:

以上是关于如何设置七个字符串的三个字母,有些会是空的的主要内容,如果未能解决你的问题,请参考以下文章

如何检查扫描字符串的第一个字符,即使它是空的?

C语言中,如何判断一个字符数组是空的?

C语言中,如何判断一个字符数组是空的

PHP MYSQL SELECT 即使有些是空的

检查字符串是空还是空的最简单方法

sql将同一个表中的两列Int数据相加,有些数据是空的