Wei_Smile
李牧羊
采纳率66.7%
2015-04-20 11:37 阅读 1.9k
已采纳

这个java程序问题出在哪里?

package exercise_9;
public class Exercise9_29 {

public static void main(String[] args) {

    java.util.Scanner input = new java.util.Scanner(System.in);
    System.out.println("Please enter am array and its split:");
    String s1 = input.next();
    System.out.println("Input split:");
    String s2 = input.next();
    String[] result=split(s1, s2);
    for (int i = 0; i < split(s1, s2).length; i++) {
        if (result[i] != null) {
            System.out.print(result[i]+" ");
        }
    }

}

public static String[] split(String s1, String s2) {
    String[] result = new String[s1.length()];
    int t = 0;
    for (int i = 0; i < s1.length(); i++) {
        for (int j = 0; j < s2.length(); j++) {
        if (s1.charAt(i)==s2.charAt(j)) {
            result[t++]=String.valueOf(s1.charAt(i));
        }else if (s1.charAt(i)!=s2.charAt(j)) {
            result[t]+=String.valueOf(s1.charAt(i));
        }
        }

    }
    return result;

}

}


要求自己写一个String类里面的split方法返回由分隔符分隔开的字符串同时返回分割符,例如输入?dwqdwq#das? ?#
返回? dwqdwq # das ?
但是我的程序不输出字符串只输出分隔符,求解释

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

2条回答 默认 最新

  • 已采纳
    devmiao devmiao 2015-04-20 12:22

    帮你修改了下,有好几个错误。因为我是C#,但是代码你可以对照修改,调试通过。

             public static string[] split(string s1, string s2)
            {
                string[] result = new string[s1.Length];
                int t = 0;
                for (int i = 0; i < s1.Length; i++)
                {
                    for (int j = 0; j < s2.Length; j++)
                    {
                        if (s1[i] == s2[j])
                        {
                            result[++t] += s1[i].ToString();
                            t++; i++;
                        }
                    }
                    result[t] += s1[i].ToString();
                }
                return result;
            }
    
            string[] result = split("hello#world?hello#kitty", "#?");
            foreach (string s in result)
                Console.WriteLine(s);
    

    输出
    hello
    #
    world
    ?
    hello
    #
    kitty

    Press any key to continue . . .

    点赞 1 评论 复制链接分享
  • devmiao devmiao 2015-04-20 12:10

    result[t++]=String.valueOf(s1.charAt(i));
    ->
    result[t++]+=String.valueOf(s1.charAt(i));

    点赞 1 评论 复制链接分享

相关推荐