2

文字列s="1,2,3,4,5"があります。私はsplit()メソッドを使用して文字列を分割し、それをintの配列に格納したいと思います。
次のことを試してみましたが、うまくいきません。

int i[]=Integer.parseInt(s.split(","));

ループを使わずにこれができるかどうか知りたいです。

C#にはArray.convertAllのようなものがありますが、Javaで同様のことを知りません。

4

5 に答える 5

1

int arrayJavaでは、渡すことで直接取得できるような方法(メソッド)はありませString array
ん。したがって、uはこれを行うためのメソッドを作成する
必要があります...ループを使用する必要がないという条件がある場合は...iを作成しますAdel Boutrosにコードを追加してコードを追加すると、これから助けが得られるかもしれませんが、ループする方が良いでしょう。.:)

public class Test {
public static void main(String[] args) {
    String s = "1,2,3,4,5";
    int size = 0;
    int[] arr = new int[s.split(",").length];
    findInt(s, arr, size);
    for (int i = 0; i < arr.length; i++) {

        System.out.println(arr[i]);
    }
}

static void findInt(String s, int[] arr, int index) {
    String aa = null;
    if (s == null) {
        return;
    }
    if (s.length() != 1) {
        String text = s.substring(0, s.indexOf(","));
        arr[index] = Integer.parseInt(text);
    } else {
        arr[index] = Integer.parseInt(s);
    }
    if (s.length() != 1) {
        aa = s.substring(s.indexOf(",") + 1, s.length());
    }
    findInt(aa, arr, ++index);
}

}
于 2011-12-15T09:59:39.657 に答える
0

ループを使用したくない場合は、ループを実行するメソッドを呼び出すことができます。

例(convertToIntsメソッドを作成する必要があります)

int[] ints = convertToInts(s);
于 2011-12-15T09:03:23.847 に答える
0

純粋なJavaでは、これを行う方法はありません。

Apache Commons(特にCommons Lang)には、配列を使用した関数のみを受け取り、必要な処理を実行する変換ユーティリティがあります。ループを自分でコーディングする必要はありません。

于 2011-12-15T09:19:05.833 に答える
0
public static void main (String []args) {
    String s="1,2,3,4,5";
    int size = 0;
    int [] arr = new int [s.length];
    findInt(s, arr, size);
}

void findInt(String s, int [] arr, int index) {
    if (s.isEmpty()) {
        return;
    }
    String text = s.substring(0,s.indexOf(","));
    arr[index] = Integer.parseInt(text);
    findInt(text.substring(1), arr, ++index);
}

PS:私の方法は再帰的アプローチを使用しています。変数sizeは、int配列の実際のサイズになります。

于 2011-12-15T09:25:27.393 に答える
0

これはおそらくあなたのコンテストに失敗するでしょう、しかしそれは確かにループを避けます:)

public static void main(String[] args) throws Exception {
    ScriptEngineManager mgr = new ScriptEngineManager();
    ScriptEngine jsEngine = mgr.getEngineByName("JavaScript");
    String s = "1,2,3,4,5";
    String s1 = s.replaceAll("(\\d+),?", "arr[i++]=$1;");
    int[] arr = new int[s.split(",").length];
    jsEngine.put("arr", arr);
    jsEngine.eval("var i=0;" + s1);
}

結果は、int[]文字列からの数字で埋められます。

于 2011-12-15T11:43:58.410 に答える