将字符串存储到int []数组中

时间:2015-03-24 08:04:59

标签: java

我有一个字符串String strings ="100.122.323.344;543.433.872.438;218.544.678.322"; 我想像[{1}}一样存储到int []中 以下是示例代码

int[] ={{100,122,323,344},{543,433,872,438},{218,544,678,322}}

直到现在我能够将值与字符串分开,但不知道如何转换为int请帮助

4 个答案:

答案 0 :(得分:1)

您可以使用

int intrect = Integer.parseInt(rect[j]);

将rect [j]转换为int。

public static void main(String[] args) {
    // TODO Auto-generated method stub

    String strings = "100.122.323.344;543.433.872.438;218.544.678.322";
    strings = strings.replace(".", ",");
    System.out.println(strings);
    String[] coordinates = strings.split(";");
    String[] rect = null;
    int[][] intcoordinates = new int[3][4];  // initialize the size of the array
    for (int i = 0; i < coordinates.length; i++) {
        // System.out.println(coordinates[i]);
        rect = coordinates[i].split(",");        
        for (int j = 0; j < rect.length; j++) {
            intcoordinates[i][j] = Integer.parseInt(rect[j]);
        }
    }
}

intcoordinates在执行结束时包含[[100,122,323,344],[543,433,872,438],[218,544,678,322]]。这是转换的最终结果。

答案 1 :(得分:1)

首先,您希望将值存储为int,您应该知道{{100,122,323,344},{543,433,872,438},{218,544,678,322}}是一个二维数组,因此它是int[][]。然后数组必须是init,行和col可以计算出来。

    int[][] intcoordinates = new int[3][4]; // init the array, the row and the col can be figured.
    for(int i=0; i<coordinates.length; i++)
    {
        //System.out.println(coordinates[i]);
        rect = coordinates[i].split(",");
        for(int j=0; j<rect.length; j++)
        {
            intcoordinates[i][j] = Integer.parseInt(rect[j]);
        }

    }
    System.out.println(Arrays.deepToString(intcoordinates));

最终执行是[[100, 122, 323, 344], [543, 433, 872, 438], [218, 544, 678, 322]]。要获得输出{{100,122,323,344},{543,433,872,438},{218,544,678,322}},您必须制作一些其他方法。因此,如果您只想获得输出,我只需将.替换为,,将;替换为},{,然后添加花括号。

答案 2 :(得分:0)

使用行和列初始化一个二维数组intcoordinates。如果不知道行大小,则应计算最大行大小。将String转换为int并分配给此数组。

 int[][] intcoordinates=new int[coordinates.length][countMaxRow(coordinates)];
 for(int i=0;i<coordinates.length;i++){
    rect= coordinates[i].split(",");
    for(int j=0;j<rect.length;j++){
       intcoordinates[i][j]=Integer.parseInt(rect[j]);
    }
 }
 System.out.println(Arrays.deepToString(intcoordinates));

这是最大行数方法

static int countMaxRow(String[] arr){
    int max=0;
    for (String str : arr) {
        String a[]=str.split(",");
        if(max< a.length){
            max= a.length;
        }
    }
    return max;
}

答案 3 :(得分:0)

概念扫描程序和集合应该适合您:

        String strings = "100.122.323.344;543.433.872.438;218.544.678.322";
    Scanner scanner = new Scanner(new ByteArrayInputStream(strings.getBytes()));
    scanner.useDelimiter(";");
    List<List<Integer>> list = new ArrayList<>();

    while(scanner.hasNext())
    {
        Scanner scanner2 = new Scanner(new ByteArrayInputStream(scanner.next().getBytes()));
        scanner2.useDelimiter("\\D");
        List<Integer> lst = new ArrayList<>();
        while(scanner2.hasNextInt())
            lst.add(scanner2.nextInt());
        list.add(lst);  
    }
    System.out.println("Lists: ");
    for(List<Integer> lst : list)
        System.out.println(lst);
相关问题