我有一个字符串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请帮助
答案 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);