如何将字符串修改为另一个字符串?

时间:2017-05-13 05:13:38

标签: java string

我有一个这样的字符串:

星期日星期一星期二星期三星期四星期五星期六

如何将其修改为:

太阳-MON-周二 - 星期三 - 周四 - 周五-饱和

4 个答案:

答案 0 :(得分:1)

有很多方法可以解决这个问题,我已经展示了两个:

1。在一周中的所有日子创建一个数组,然后将它们除以“ - ”

要打印字符串的前3个字母,可以创建一个数组,并使用for循环,仅打印前3个字符,用“ - ”除以。您的程序可能如下所示:

String days = "";
String[] str = {"sunday", "monday", "tuesday", "wednesday", "thursday", "friday", "saturday"};
for (int i = 0; i < str.length; i++) {
    String word = str[i].replace(str[i].substring(3), "") + "-";
    days += word;
}
System.out.println(days.substring(0, days.length()-1));

这将替换前三个字符之后的所有内容,在其末尾添加“ - ”,并修剪最后一个字符,即“sat”之后的“ - ”。这给出了输出:

sun-mon-tue-wed-thu-fri-sat

2。使用一周中的所有日期创建一个字符串,将它们分成一个数组,然后将成员分成“ - ”

此选项是您希望保留原始String。这将在找到“ - ”的任何地方拆分String。然后它将与第一个程序相同,使用for循环仅打印前3个字符,用“ - ”除以它们,并修剪最后一个字符。计划如下:

String days = "";
String x = "sunday-monday-tuesday-wednesday-thursday-friday-saturday";
String [] str = x.split("-");
for (int i = 0; i < str.length; i++) {
    String word = str[i].replace(str[i].substring(3), "") + "-";
    days += word;
}
System.out.println(days.substring(0, days.length()-1));

程序提供相同的输出:

sun-mon-tue-wed-thu-fri-sat

两个程序非常相似,唯一的区别是数字1已经有单独的成员,而数字2保留原始String并将其分成数组。如果您有任何问题,请在下面发表评论。

答案 1 :(得分:1)

实现该输出的一种可能方式是:

String test = "sunday-monday-tuesday-wednesday-thursday-friday-saturday";
String [] arr = test.split("-");
String res = "";
int len = arr.length;
for(int i=0 ;i<len;i++){
    res = res + arr[i].substring(0, 3);
    if(i<len-1){
        res = res+"-";
    }
}
System.out.println(res);

输出是你想要的:

sun-mon-tue-wed-thu-fri-sat

此程序只打印一周中每天的前3个字符,并用“ - ”除以。

答案 2 :(得分:0)

String在Java中是不可变的,因此您必须将其分配给另一个String。在您的情况下,我们可以使用Java 8执行以下操作:

String days = "sunday-monday-tuesday-wednesday-thursday-friday-saturday";

days = String.join("-", Arrays.stream(days.split("-"))
                                    .map(s -> s.substring(0, 3))
                                    .toArray(String[]::new));

System.out.println(days);

>> sun-mon-tue-wed-thu-fri-sat

如果您不想使用Java 8及其Stream API,那么您可以编写以下内容:

String days = "sunday-monday-tuesday-wednesday-thursday-friday-saturday";

StringBuilder sb = new StringBuilder();

for (String day : days.split("-")) {
    sb.append(day.substring(0, 3)).append('-');
}

days = sb.deleteCharAt(sb.length() - 1).toString();

System.out.println(days);

>> sun-mon-tue-wed-thu-fri-sat

答案 3 :(得分:0)

String printWord = string.Empty;

    String[] str = { "sunday", "monday", "tuesday", "wednesday", "thursday", "friday", "saturday" };
    for (int i = 0; i < str.Length; i++)
    {
        printWord += str[i].Replace(str[i].Substring(3), "") + "-";
    }


    lblresult.Text = printWord.TrimEnd('-');