您好我的问题如下,即时接收2d矩阵,我已经创建了一个名为City的类,它将保存x和y的位置坐标,这些值将以逗号分隔,如下所示
@using (@Html.BeginForm())
{
if (!IsPost)
{
<div class="row">
<div class="col-lg-2">
<br />
<br />
@Html.LabelFor(m => m.Group_Name)
@Html.DropDownList("groupList",
(IEnumerable<SelectListItem>)
ViewBag.ListItem, "Select Group",
new { @id = "selectedGroup",
@class = "form-control" })
<br />
<br />
<button class="btn btn-primary"
>Submit</button>
</div>
<div class="col-lg-2">
<br />
<br />
<label id="lblAddNew" class="label-default">
Add new group</label>
<input type="radio" id="radioAddNew" class="radio-inline" />
<br />
<br />
@Html.TextBoxFor(m => m.Group_Name,
new { @id = "txtBoxAddNewGroup" })
</div>
</div>
@*<button class="btn btn-primary">Submit</button>*@
}
<div class="col-lg-2">
</div>
}
<script type="text/javascript">
$(document).ready(function () {
$("#txtBoxAddNewGroup").hide();
$("#radioAddNew").click(function () {
if (this.checked == true) {
$("txtBoxAddNewGroup").show();
}
else {
$("txtBoxAddNewGroup").hide();
}
});
});
</script>
所以&#34; coord&#34;是数组的值,当我打印它时,它具有正确的值但是当我创建它复制值的城市时,我该如何解决这个问题呢?我知道这是一个愚蠢的问题但是我被困在这里。
我的构造函数
0,0
0,20
4,3
6,2
7,21
for (int k = 0; k < size; k++){
String valuesStrArr2[] = s.nextLine().split(",");
for (int l = 0; l < 2; l++){
int coord = Integer.parseInt(valuesStrArr2[l]);
System.out.println("cordinatesss:" + coord);
City city = new City(coord,coord);
TourManager.addCity(city);
}
}
答案 0 :(得分:0)
您似乎认为coord
在调用new City(coord,coord)
的同一时间点会有两个不同的值。该变量在该点只有一个值Integer.parseInt(valuesStrArr2[l])
这会导致您有重复的城市,一个具有正确的x坐标,另一个具有正确的y坐标。
要解决此问题,请尝试以下方法: 注意:此代码不适合您,因为我没有考虑高于9的坐标值(此代码仅在所有值均为1位数值时有效)显示此项旨在帮助您自己找到答案
String coordinates = "0, 0, 0, 20, 4, 3, 6, 2, 7, 21";
for (int k = 0; k < size; k += 2){ //This is to get every other value from the coordinates
int x = Integer.parseInt(coordinates.charAt(k));
int y = Integer.parseInt(coordinates.charAt(k+1));
System.out.println("cordinatesss:" + x + ", " + y);
City city = new City(x, y);
TourManager.addCity(city);
}
答案 1 :(得分:0)
由于您的2D数组具有如此少的列,因此您实际上不需要内部用于循环。你可以用一个循环完成整个过程,它很可能更具可读性:
for (int k = 0; k < size; k++) {
String valuesStrArr2[] = s.nextLine().split(",");
int coord1 = Integer.parseInt(valuesStrArr2[0]);
int coord2 = Integer.parseInt(valuesStrArr2[1]);
City city = new City(coord1, coord2);
TourManager.addCity(city);
}