Java 弦除法

Java 弦除法,java,string,Java,String,我想使用特殊方法(如java中的util包方法)将字符串“my name is xxx”打印为“xxx is name my”; 谢谢供参考,String类位于java.lang包中 String text = "my name is xxx"; String reversed = ""; for (String word : text.split(" ")) { reversed = word + " " + reversed; } reversed = reve

我想使用特殊方法(如java中的util包方法)将字符串“my name is xxx”打印为“xxx is name my”;
谢谢

供参考,String类位于java.lang包中

  String text = "my name is xxx";
  String reversed = "";
  for (String word : text.split(" ")) {
     reversed = word + " " + reversed;
  }
  reversed = reversed.trim();

如果绝对不允许方法调用,那么就有点混乱了

  String text = "my name is xxx";
  char[] letters = text.toCharArray();
  char[] srettel = new char[letters.length];
  for (int last = letters.length, i = last - 1, j = 0; i >= -1; i--) {
     if (i == -1 || letters[i] == ' ') {
        for (int k = i + 1; k < last; ) {
           srettel[j++] = letters[k++];
        }
        if (i != -1) srettel[j++] = ' ';
        last = i;
     }
  }
  String reversed = new String(srettel);
String text=“我的名字是xxx”;
char[]字母=text.toCharArray();
char[]srettel=新字符[letters.length];
对于(int last=letters.length,i=last-1,j=0;i>=-1;i--){
如果(i==-1 | |字母[i]=''){
对于(int k=i+1;k

这需要更多的解释。我们从右向左读取输入数组(
i--
),每当我们找到一个空格,或者当我们最终碰到左墙(
i==-1
)时,我们将(
for k
)我们找到的单词复制到输出数组(
[j++]=
)。我们在
last

中跟踪单词边界,我不懂Java,但这里是最糟糕的方法

如果您不想使用split()方法,那么

  string text = "My name is Khan";

    int length = text.Length;

    int numberOfWords = 0;

    for (int i = 0; i < text.Length; i++)
    {
        if (text[i] == ' ')
        {
            numberOfWords++;
        }
    }

    numberOfWords += 1; // no of words will be always plus one than no of space.

    string[] wordCollection = new string[numberOfWords];

    int wordLocation = 0;

    for (int i = 0; i < text.Length; i++)
    {
        if (text[i] == ' ')
        {
            wordLocation++;
        }

        wordCollection[wordLocation] += text[i];
    }

    string reversedString = string.Empty;

    foreach (string str in wordCollection)
    {
        reversedString = str + " " + reversedString;
    }

    Console.Write(reversedString.Trim());
string text=“我的名字是汗”;
int length=text.length;
int numberOfWords=0;
for(int i=0;i

如果这是一个家庭作业,并且它被转移到了某个人身上,那么你是一个更松散的人

你想使用Java API而不使用Java API吗?这是家庭作业,对吧?“字符串划分”听起来很奇怪。为了它的价值,OP,这项任务被称为字符串标记化。问家庭作业问题是可以的,但前提是你将它们标记为这样,并表现出一定的努力(比如,不要仅仅期望有人给你答案)。这确实是一个家庭作业。split()不是JAVA API吗?@Helper:我的哲学不是判断和/或推定;我来这里只是想提供我能提供的最好、最有启发性的解释。@Helper:我终于阅读了社区关于家庭作业的书面指南(),我可能应该早点做。在任何情况下,“不要否决其他真诚回答家庭作业问题的人,即使他们违反了这些准则。”。至于我,下次我将提供伪代码。很抱歉,我不知道这些指导原则存在。想想看,如果这个学生渴望学习,他会努力理解你写的东西,如果不是,他可能不会学习太久;-)。所以在任何情况下,这都不是什么大问题,我很抱歉:-)。是的,但是java.util中还有其他字符串操作类,比如StringTokenizer。绝对不使用任何java包;-)