我想在使用字符串函数的情况下使用String数组中的字符串数组将“这是一个程序”的给定字符串反转为“sihT si a margorp”?

时间:2015-03-05 07:03:17

标签: java

    class Reverse_Word
    {
        public static void main(String args[])
        {
            String s = "This is a program";
            String str[] = s.split(" ");
            String wrd = new String();
            try{
            for(int i=0;i<str.length;i++)
            {

                wrd = str[i];
                for(int j=wrd.length();j>=0;j--)
                {
                    String str1[]=wrd.split("//");
                    System.out.println(str1);
                }

            }

            }catch(Exception e)
            {
                System.err.println(e);
            }
        }
    }

现在,当我修改代码时。它们没有错误,但像一些哈希码一样输出错误     [Ljava.lang.String; @ d70d7a     [Ljava.lang.String; @ b5f53a     [Ljava.lang.String; @ 1f6f0bf     [Ljava.lang.String; @ 137c60d     [Ljava.lang.String; @ ab853b     [Ljava.lang.String; @ b82368     [Ljava.lang.String; @ 11c8a71     [Ljava.lang.String; @ c53dce     [Ljava.lang.String; @ 15cda3f     [Ljava.lang.String; @ fc9944     [Ljava.lang.String; @ 1b26af3     [Ljava.lang.String; @ 8b819f     [Ljava.lang.String; @ eb017e     [Ljava.lang.String; @aeffdf     [Ljava.lang.String; @ 120a47e     [Ljava.lang.String; @ f73c1     [Ljava.lang.String; @ 789144     [Ljava.lang.String; @ 1893efe

3 个答案:

答案 0 :(得分:0)

 String str1 = "";// its just a String object
  str1[j] = wrd.split(""); // and you are using it as an array;

需要更改:

  String str1[];

    str1= wrd.split(""); // I dont know what is your purpose here

您的答案代码是

 StringBuilder newstring = new StringBuilder();
    try {
        for (int i = 0; i < str.length; i++) {
            // System.out.println(str[i]);
            wrd = str[i];
            System.out.println("Hi" + str[i]);
           char chars[] = wrd.toCharArray();// converting your string in chars
               for(int k=chars.length-1;k>=0;k--){
                   newstring.append(chars[k]); // appending your characters in reverse order
               } 
               newstring.append(' ');// appending `space` after each word


        }
    } catch (Exception e) {
        System.err.println(e);
    }
    System.out.println(newstring);// printing your entire reversed string

答案 1 :(得分:0)

当然..

String str1 = ""; // str1 is a String and not an array

然后你做

str1[j] = wrd.split("");// I am getting error here. because str1 is NOT an array

将str1更改为数组。 String[] str1 = null;

此外,wrd.split("") 没有

答案 2 :(得分:0)

如果你想将单词拆分为字符数组(一个字符串数组 - 每个字符串都是一个charatcer),你应该使用:

wrd.split("//");

因此,如果wrd = "This";它将返回数组:{"T", "h", "i", "s"}

示例:

String str = "abcd";
String[] arr = str.split("//");
System.out.println(Arrays.toString(arr)); // prints [abcd]

请注意,因为它返回一个字符串数组 - 它不适合str1[j](这是一个错误,因为字符串不能像数组一样被访问) - 但我会让你解决这个问题你自己(除非你特别要求完整的逻辑)。