2012-08-04 78 views
1

我想分割两个数字字符串12345678和-12345678,这样我就可以在每个实例中的前两个整数之后插入一个小数点。这就是我与迄今为止的工作..如何按字符位置分割字符串?

String googlelat = String.valueOf((int) (location.getLatitude()*1E6)); //<-- equals 12345678 
     if (googlelat.length() <= 8 ){ 
         //split after second integer 
         //insert decimal 
      //make string 12.345678 
     } 
     String googlelon = String.valueOf((int) (location.getLongitude()*1E6)); //<-- equals -12345678 
        if (googlelon.length() > 8 ){ 
         //split after third character 
         //insert decimal 
      //make string -12.345678 
     } 
+0

我不认为你正走向正确的轨道。如果要更改小数位,请将值保存为浮点形式并使用除法/乘法。如果你想把这个数字格式化为一个字符串,那么有更好的方法去做。 – Brannon 2012-08-04 04:45:07

+0

你在调用'String.valueOf'之前是否考虑过_not_乘以'1E6'? – oldrinb 2012-08-04 04:45:59

+0

@super_不乘以* 1E6只留下前两个整数12,而不是123456678和-12,而不是-123455678。我需要整个号码才能继续使用。 – 2012-08-04 04:53:06

回答

1

尝试这种方式....

取字符串值到StringBuilder。的StringBuilder

StringBuilder sb = new StringBuilder(googlelat); 

2.使用insert()方法。

sb.insert(2,"."); 

其完成!对经度使用同样的方法。

+0

查看关于原始帖子的评论以获得更简单的方法。 – oldrinb 2012-08-04 05:25:13

+0

更容易或不取决于实施者,其解决给定问题的一种方式,现在它取决于这样做的人或任何其他......谢谢 – 2012-08-04 05:26:32

+0

适合你自己。解决问题有一个合乎逻辑的方法,而且是解决问题的更合乎逻辑的方法。 – oldrinb 2012-08-04 05:29:45