我有一个这样的字符串:
星期日星期一星期二星期三星期四星期五星期六
如何将其修改为:
太阳-MON-周二 - 星期三 - 周四 - 周五-饱和
答案 0 :(得分: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
此选项是您希望保留原始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('-');