Java替换除每个单词中的第一个和最后一个字符外的所有字符
我想完成的是将句子替换为下划线,但除了单词中的第一个和最后一个字符 例如:Java替换除每个单词中的第一个和最后一个字符外的所有字符,java,android,replaceall,Java,Android,Replaceall,我想完成的是将句子替换为下划线,但除了单词中的第一个和最后一个字符 例如: I am walking 致: 这在regex中可能吗?这个答案应该有用,以后在您的问题中会更详细一点,并告诉我们您尝试了什么,人们会更愿意提供帮助;) 我想你可以通过正则表达式来实现这一点,通过查看匹配的开始和结束位置。然而,在这种情况下,正则表达式似乎有些过分。更简单的做法是分配一个新的字符数组,将输入的第一个字符和最后一个字符复制到该数组,并用下划线填充中间,然后从该字符数组中分配一个字符串,如: public
I am walking
致:
这在regex中可能吗?这个答案应该有用,以后在您的问题中会更详细一点,并告诉我们您尝试了什么,人们会更愿意提供帮助;)
我想你可以通过正则表达式来实现这一点,通过查看匹配的开始和结束位置。然而,在这种情况下,正则表达式似乎有些过分。更简单的做法是分配一个新的字符数组,将输入的第一个字符和最后一个字符复制到该数组,并用下划线填充中间,然后从该字符数组中分配一个字符串,如:
public class ReplaceMiddle {
public static String replaceMiddle (String s) {
char[] c = new char[s.length()];
c[0] = s.charAt(0);
for (int i = 1; i < s.length() - 1; i++) {
c[i] = '_';
}
c[s.length() - 1] = s.charAt(s.length() - 1);
return new String(c);
}
public static void main(String[] argv) {
System.out.println( ReplaceMiddle.replaceMiddle("I want a pumpkin."));
}
请注意,这不会处理长度为零的字符串,也不会处理s为空的情况。到目前为止,您尝试了什么?当我将句子
“I am walking”
替换为下划线,除了第一个和最后一个字符之外,我得到了“I\uuuuuuuuuuug”
。你需要更加精确,并张贴一个有意义的例子。此外,您需要展示您所做的尝试,因为我们愿意帮助您,但我们不是来满足代码请求的。您所说的只是句子中的第一个和最后一个字符,但您给出了一个示例I am w\uuuuuuug
。这不是句子中的第一个和最后一个字符,而是在单词中,请向我们解释您需要在单词或句子中使用什么?@AzadOmer Thx编辑我的意思是单词。这是有效的,但是否可能包括空格?比如:H_uuu_uuo M_um这不是一个单词,那是一个句子,你可以对句子中的每个单词使用上面的代码,请参阅我的更新。哇,谢谢兄弟。我已经试了好几天了。
public static void main(String[] args) {
System.out.println(replaceAll("Hello", '_'));
String sentence = "Hello Mom What Is For Dinner?";
StringBuilder sentenceReformed = new StringBuilder();
for (String word : sentence.split(" ")) {
sentenceReformed.append(replaceAll(word, '_'));
sentenceReformed.append(" ");
}
System.out.println(sentenceReformed);
}
public static String replaceAll(String word, char replacer) {
StringBuilder ret = new StringBuilder();
if (word.length()>2) {
ret.append(word.charAt(0));
for (int i = 1; i < word.length() - 1; i++) {
ret.append(replacer);
}
ret.append(word.charAt(word.length() - 1));
return ret.toString();
}
return word;
}
H__o
H___o M_m W__t Is F_r D_____?
public class ReplaceMiddle {
public static String replaceMiddle (String s) {
char[] c = new char[s.length()];
c[0] = s.charAt(0);
for (int i = 1; i < s.length() - 1; i++) {
c[i] = '_';
}
c[s.length() - 1] = s.charAt(s.length() - 1);
return new String(c);
}
public static void main(String[] argv) {
System.out.println( ReplaceMiddle.replaceMiddle("I want a pumpkin."));
}
I_______________.