如何复制给定单词的第一个和最后一个字符之间的字符?

问题描述:

嘿所以我正在处理一个问题,给我一个单词,然后要求我复制该单词的第一个和最后一个字母之间的字母的一些数字。如何复制给定单词的第一个和最后一个字符之间的字符?

我试图学习如何通过其他帖子复制角色,但我认为我完全错了。有人可以帮忙吗?

这是我

public String stretch(String s, int n){ 
    char first = s.charAt(0); 
    char last = s.charAt(s.length()-1); 
    String result = ""; 
    for(int i = 1; i < s.length()-2; i++) 
     for(int j = 0; j < n; j++) 
      result += first +s.charAt(i)+ last; 

    return first +result+ last; 
+0

我不明白,如果我把'(“榜样”,2)'输出应该是'exxaammpplle'? – Thrasher

+0

是的,确切地说 – JVAN

+0

我无法获得您的JUnit。什么试图测试?我还需要SEED数据,什么是sp? – Thrasher

public class mainProgram 
{ 

    public static void main (String [ ] args) 
    { 
     String word = "example"; 
     String result = stretch (word , 2); 
     System.out.println (result); 
    } 

    public static String stretch(String s, int n){ 
     char first = s.charAt(0); 
     char last = s.charAt(s.length()-1); 
     String result = ""; 
     for(int i = 1; i < s.length()-1; i++) 
     { 
      for(int j = 0; j < n; j++) 
      result += s.charAt(i); 
     } 

     return first +result+ last; 
    } 

} 
+0

当我使用它来对付我的教授为我提供的Junit测试程序时,这不起作用。我不确定什么是错的。我做了类似的事情,查看我的更新信息。但是,仍然没有工作。谢谢你的帮助! – JVAN

+0

@JVAN尝试运行我的编辑。你可以附加你的JUnit测试吗? – Thrasher

+0

我加了测试仪。它没有通过它:/ – JVAN

你能做到在同一行:

return s.replaceAll("(?<!^).(?!$)", new String(new char[n]).replace("\0", "$0")); 

其分解:

  • 查找正则表达式的每个字符相匹配除了第一个和最后一个(负面看后面和负面看提前断言这一点)
  • 更换期限是$0n副本,这是比赛
+0

需要做的更长的路,第一年的Java课程大声笑 – JVAN

+0

@jvan我保证你的老师/教授不能这样做,因为这或者1337 :) – Bohemian