2014-11-23 3 views
0

그래서 내가 (으로 parseInt, 내가 아는)를 int로 문자열을 변환하는 것을 이해 int로 좌표,하지만 난 다음 변환 할 수 있는지 궁금 해서요 :문자열이

문자열 = EasyIn.getString() 좌표; (예 : "1, 1")

Integer.parseInt (coordinates); 두 개 이상의 정수가 있기 때문에 분명히 작동하지 않습니다. 이 문제를 해결하기위한 방법이 있습니까? 아니면 별도의 정수를 만들어야합니까? 문제에 대한 조언이나 도움을 주셔서 감사합니다! 당신이 새로운 API를 사용할 수없는 경우

(이 BTW, 자바입니다)

+1

'String' 클래스의'split' 메소드에 대해 알고 있습니까? –

답변

0

다음을 수행하십시오 먼저, 그런 다음 각 문자열

int x = Integer.parseInt(coordinates.substring(0,commaLoc)); 
int y = Integer.parseInt(coordinates.substring(commaLoc + 2)); 
을 구문 분석

int commaLoc = coordinates.indexOf(","); 

에 쉼표를 찾아

스캐너를 사용할 수있는 경우 :

Scanner scanner = new Scanner (coordinates); 
scanner.useDelimiter (", "); 
int x = scanner.nextInt(); 
int y = scanner.nextInt(); 
0

는 자바 직접적인 방법은 없습니다,하지만 당신은 정규식 사용하는 경우 그것은 단지 두 가지 간단한 라인 : 당신은 자바 (8)이있는 경우,이 숫자의 CSV에서 int 배열을 얻을 수있는 한 줄이

int x = Integer.parseInt(coordinates.replaceAll(",.*", "")); 
int y = Integer.parseInt(coordinates.replaceAll(".*,", "")); 

의를.

int[] ints = Arrays.stream(coordinates.split(", *")).mapToInt(Integer::parseInt).toArray();