用Java写回来

时间:2017-08-08 03:44:52

标签: java arrays string data-structures

我必须阅读一个句子并保留它们的顺序,然后将这些单词写回来,例如:输入“我想要一个甜甜圈”,输出“I tnaw a tunod”。

我编写了代码,但它标记了 for 循环中的错误,老实说我不知道​​为什么。

import java.lang.*;
import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner read = new Scanner(System.in);
        System.out.println("Introduce your sentence");
        String line;
        line = read.nextLine();

        int T = line.length();
        int Wspace = 0;
        int x = 0;
        for (int i = 0; i < T; i++)
            if(Character.isWhitespace(line.charAt(i)))
                x = Wspace++;

        for(int i = 0,int l = 0; i < T, l < x-1; i++, l++) //marks bugs here :({
            if  (!Character.isWhitespace(line.charAt(i))) 
                arrl[i] = arr[i];
            else
                i++;
        }
    }
}

bug in the for loop

2 个答案:

答案 0 :(得分:1)

for循环有2个问题。 1.定义int i =0, int l =0;

这应该写成int i =0, l = 0; 在同一行中定义时,不需要第二个int。

  1. 条件不应以逗号(,)或分号(;)分隔。我们可以使用&amp;&amp;运营商将这两个条件加在一起。所以

    我&lt; T,l&lt; X-1;

  2. 应该是

    i < T && (l < x-1); 
    

    或者应该找到其他方式来表示条件。重写循环可以是另一种答案中定义的方式。

答案 1 :(得分:0)

你不能简单地使用带有两个变量的for语句:      for(int i = 0,int l = 0; i&lt; T,l&lt; x-1; i ++,l ++

你在判刑的时候试过吗?

int i = 0, l=0;
            while(i<T && l<x-1) {

您必须使用新关键字

为数组创建内存分配
String arrl[] = new String[T];

import java.lang.*;
import java.util.*;

/**
 *
 * @author cesargarcia
 */
public class NewClass {

    public static void main(String[] args) {
        Scanner read = new Scanner(System.in);
        System.out.println("Introduce your sentence");
        String line;
        line = read.nextLine();

        int T = line.length();
        int Wspace = 0;
        int x = 0;
        for (int i = 0; i < T; i++) {
            if (Character.isWhitespace(line.charAt(i))) {
                x = Wspace++;
            }
        }

        String arrl[] = new String[T];

        String arr[] = new String[T];
        int i = 0, l=0;
        while(i<T && l<x-1) {
                 {
                     if (!Character.isWhitespace(line.charAt(i))) {
                         arrl[i] = arr[i];
                     } else {
                         i++;
                     }

                 }
        }
    }

}