Java 如何为字符串变量编制索引?

Java 如何为字符串变量编制索引?,java,Java,如何索引aString变量。到目前为止,我一直在尝试使用: ... private GeoPoint points[]; int counter = 0; ... counter ++; String[] RowData = line.split(","); longitude = RowData[0]; latitude = RowData[1]; Double lat = new Double(latitude); Double l

如何索引aString变量。到目前为止,我一直在尝试使用:

   ...
   private GeoPoint points[];
   int counter = 0;
   ...
   counter ++;
   String[] RowData = line.split(",");
   longitude = RowData[0];
   latitude = RowData[1];
   Double lat = new Double(latitude);
   Double lng = new Double(longitude);
   points[counter] = new GeoPoint((int) (lat * 1E6), (int) (lng * 1E6));
   ...
   for(int i=0; i < pointsCounter-1; i++) {
   geopoint1 = points[i];
   geopoint2 = points[i+1];
   }
   ...
。。。
专用地质点[];
int计数器=0;
...
计数器++;
String[]RowData=line.split(“,”);
经度=行数据[0];
纬度=行数据[1];
双纬度=新的双纬度;
双倍lng=新的双倍(经度);
点[计数器]=新地质点((内部)(纬度*1E6),(内部)(液化天然气*1E6));
...
对于(int i=0;i
每次我测试上面的力都会关闭-有什么想法吗? 谢谢

对不起,我的问题不清楚-我实际上想做的是在地图叠加上画一条路径-我可以得到所有的地质点,这些点使我能够画一条非常漂亮的虚线,即从点“a”到b,然后从点“c”到点d等等,所以我试图找到一种方法来记录以前的地质点,这样我就可以使用它从点“b”到点“c”。我试图通过使用“counter”int来使用点索引

如果我不尝试为“点”编制索引,一切都会很好,但正如前面提到的,我会得到一条虚线

我希望这是有道理的——在过去的一天左右,我一直在兜圈子,如果我给人的印象是有点无礼的话,我很抱歉(尽管我可能是!)

下面是更详细的代码

    try {
         String line;
        while ((line = reader.readLine()) != null) {

            counter ++;

        String[] RowData = line.split(",");
        longitude = RowData[0];
        latitude = RowData[1];

        Double lat = new Double(latitude);
        Double lng = new Double(longitude);

        points[counter] = new GeoPoint((int) (lat * 1E6), (int) (lng * 1E6));

        for(int i=0; i < pointsCounter-1; i++){

        geopoint1 = points[i];
                    geopoint2 = points[i+1];

        p1 = new Point();
        p2 = new Point();   
        path = new Path();

        Projection projection = mapv.getProjection();
        projection.toPixels(geopoint1, p1);
        projection.toPixels(geopoint2, p2);

        path.moveTo(p2.x, p2.y);
        path.lineTo(p1.x,p1.y);

        canvas.drawPath(path, mPaint);

        }

        }

    }
    catch (IOException ex) {
        // handle exception
    }
试试看{
弦线;
而((line=reader.readLine())!=null){
计数器++;
String[]RowData=line.split(“,”);
经度=行数据[0];
纬度=行数据[1];
双纬度=新的双纬度;
双倍lng=新的双倍(经度);
点[计数器]=新地质点((内部)(纬度*1E6),(内部)(液化天然气*1E6));
对于(int i=0;i

非常感谢您的PointsCenter可能正在数到points.length,不是吗?这意味着循环中的点[i+1]正在访问一个不存在的数组索引-这是您的问题-正确地进行循环…

如果您想要字符串的特定字符,请使用
字符

String x = "abcde"
x.charAt(0) // 'a'
x.charAt(4) // 'b'

注意
charAt
返回
字符,而不是
字符串

如果我理解正确,则在
for
循环的
上会出现
索引自动边界异常。这是因为当您到达最后一个元素时,索引
i+1
不再有效,例如

for(int i=0; i < pointsCounter-1; i++){
    //when i == pointsCounter-1, i+1 == pointsCounter, which is not a valid index
    geopoint1 = points[i];
    geopoint2 = points[i+1];
    ...
}
for(int i=0;i
只需执行一个简单的检查:

for(int i=0; i < pointsCounter-1; i++){
    //when i == pointsCounter-1, i+1 == pointsCounter, which is not a valid index
    geopoint1 = points[i];
    if (i == pointsCounter-1) {

      //there is no second point, so do something special
    } else {
        geopoint2 = points[i+1];
    }
    ...
}
for(int i=0;i

您可以清除此逻辑,使其按您的要求运行。

强制关闭在哪一行?异常是什么?首先:我应该将所有代码封装在try/catch语句中,并记录捕获的异常。也许这会有帮助:你说的“索引”是什么意思?您没有在代码上建立任何索引,而是在拆分
字符串。另外,正确的java格式将使用camelCase
String[]rowData=…
。您将points[]数组初始化为什么大小?我在张贴的代码中没有看到任何迹象谢谢Peter-我的问题不是for循环,而是每次我尝试使用(点[计数器]=新的地质点((int)(lat*1E6),(int)(lng*1E6));它都会强制关闭。如果我使用(points=new GeoPoint((int)(lat*1E6),(int)(lng*1E6));),它会起作用,因此我似乎是在为变量“points”编制索引,这是导致问题的原因。