Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java替换除每个单词中的第一个和最后一个字符外的所有字符_Java_Android_Replaceall - Fatal编程技术网

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_______________.