2012-01-09 4 views
0

현재 많은 숫자가 포함 된 문자열 번호를 사용하는 Android 프로젝트에서 작업하고 있습니다.문자열 번호를 Android에서 쉼표로 구분 된 문자열 번호로 변환합니다.

그래서 나는 인도 로케일 형식쉼표로 구분 된 문자열 번호 예컨대 (1,00,00,00,000)에 대한에 예컨대 1000000000문자열 번호을 변환 할 수있는 방법이 있는지 알고 싶어요.

미국 로캘 형식 문자열 변환하지만 인도어로 형식을 사용하고 싶습니다.

+1

미국 로캘 형식으로 어떻게 만들었습니까? – curioustechizen

+0

@ techi.curious : 따르기 ... [link] http://stackoverflow.com/questions/6439447/how-to-convert-string-numbers-into-comma-seperated-integers-in-java – mobilemagic

답변

1

나는 (내가 인도에 대한 en_IN이라고 생각) 적절한 로케일로 포맷터 개체를 초기화 보장, Format 클래스의 format("% ,d", number) 방법을 사용합니다.

그렇다면 처음부터 미국 로케일에서 코드를 게시하는 방법에 대해 코드를 게시하면 사람들이 쉽게 도움을받을 수 있습니다.

+0

thnks bro 나는 format()을 사용했고 원하는 결과를 얻었다 .... – mobilemagic

0

사용자의 현재 로캘 설정을 사용하여 일반적인 경우를 만들 수 있도록 NumberFormat을 사용해야한다고 생각합니다.

그리고 나는 이것이 현재의 상황이라고 생각 : 여러 수치를 포맷하는 경우, 포맷을 취득하고 시스템에 대한 정보를 가져올 필요가 없습니다 있도록 여러 번 사용하는 것이 더 효율적이다

현지 언어 및 국가 관습을 여러 번.

NumberFormat nf = NumberFormat.getInstance(); 
for (int i = 0; i < a.length; ++i) { 
    output.println(nf.format(myNumber[i]) + "; "); 
} 
1

참조 : Formatting a Number Using a Custom Format

private String getFormatedData(String unformatedData) { 
     if(unformatedData != null) { 
      try { 
       //unformatedData.replaceAll(",", ""); 
       Double result = Double.valueOf(unformatedData);    
       DecimalFormat myFormatter = new DecimalFormat("###,##0.00"); 
          //DecimalFormat myFormatter = new DecimalFormat("#,###,###"); 
          //If you don't want to show .00 format 
       return myFormatter.format(result); 
      } catch (NumberFormatException e) { 
       return unformatedData; 
      } 

     } else { 
      return "0.00"; 
     }  
    } 

이 방법을 사용.

.00 값이 필요하지 않으면이 방법을 수정해야한다고 생각합니다. 내가 해결하도록 노력하자.

0

Pankaj Kumar가 제공 한 답변은 인도어 형식이 아닌 미국 형식으로 출력됩니다. 다음과 같이

NumberFormat.getNumberInstance(Locale.US).format(35634646) 

: 당신이 미국의 형식으로 원하는 경우 은 쉽게 다음 코드에 의해 수행 할 수 있습니다 Converting Integer to String with comma for thousands

는이 매뉴얼 코드

을 시도 할 수 있습니다 인도의 형식으로 쉼표로 문자열을 얻으려면
public String round(String d) 
{ 


    ArrayList<Integer> commas=new ArrayList<Integer>(); 
    String output=null; 
    char[] preDecimal=d.split("[.]")[0].toCharArray(); 
    int i=preDecimal.length-3; 
    System.out.println(i); 
    while(i>0) 
    { 
     commas.add(i); 
     i-=2; 
    } 

    StringBuilder sb=new StringBuilder(); 
    for(i=0;i<preDecimal.length;i++) 
    { 
     sb.append(preDecimal[i]); 
     if(commas.contains(i+1)) 
      sb.append(","); 



    } 

     output=sb.toString(); 

    return output; 

} 
관련 문제