如何用Java中的另一个字符串替换String的特定部分?

时间:2018-07-21 12:51:35

标签: java string stringbuffer

我一直在尝试用另一个String替换String的特定部分(空格字符数组)。

例如

String string1 = "          ";
String string2 = "hello";

我想用“ hello”替换string1中的前5个字符。 谁能帮我? 如果我打印string1的长度,则应该打印原始长度string1而不是string2的长度。 我不要修剪的版本。

1 个答案:

答案 0 :(得分:-1)

以下是一个可以解决您的问题的示例:

Hello

在此示例中,我们创建一个带有5个字符空格的空String,就像您在问题中所遇到的那样。然后,我们创建一个包含单词“ Hello”的字符串。我们可以创建一个CharArray []来将所有元素存储在字符串1中。由于我们要更改前5个索引,因此我们将运行一个循环,迭代5次。直到前5个索引被更改。在每次迭代中,我们将数组中该字符索引的值设置为字符串2中的字符索引值。循环完成后,我们将一个=设置为Char Array的String值。这是您的输出:

String one = "     theDogCrossedTheRoad";
System.out.println("The length is: " + one.length());

此解决方案可以根据您的需求进行工作。例如,假设您更改了代码,而String如下所示:

System.out.println("The length is: " + one.length());

字符串一的输出长度为25。然后在代码执行后让我们测试String的长度:

The length is: 25
HellotheDogCrossedTheRoad
The length is: 25

输出仍然是25,因此代码不会修剪原始String的长度。它仅替换前5个字符。这是您的输出:

library(ggplot2)
library(dplyr)
library(reshape2)

df = data.frame(period = seq(as.POSIXct("2017-01-01"),as.POSIXct("2017-12-01"), by = "month"), 
                b = c(100, 110, 105, 200, 210, 190, 180, 170, 165, 175, 140, 145),
                c = c(120, 130, 150, 170, 250, 160, 130, 120, 110, 130, 120, 170),
                d = c(1060, 1180, 1050, 2070, 2150, 1900, 1850, 1070, 1605, 1750, 1460, 1250)) %>% 
             mutate(period = factor(period))

df_bar = melt(df, id.vars = "period", measure.vars = c("b", "c", "d")) %>% filter(variable != "d")

df_line = df %>% select(period, d)

ggplot(data = df_bar, aes(x = period, y = value, fill = variable)) + 
 geom_bar(stat = "identity", position = "dodge") +
 theme(axis.text.x = element_text(angle = 90, hjust = 1)) +
 theme(axis.text=element_text(size=9), 
 axis.title=element_text(size=14,face="bold")) +
 ylab("primary axis") +
 geom_line(data = df_line, aes(x = period, y = (d)/10, group = 1), inherit.aes = FALSE) + 
 geom_point(data = df_line, aes(x = period, y = (d)/10, group = 1), inherit.aes = FALSE) +
 scale_y_continuous(sec.axis = sec_axis(~.*10, name = "secondary axis"))

您可以看到其余的String仍然完好无损,唯一改变的是前5个字符。您仍然具有相同的字符长度,因此不会修剪您的代码。