2013-09-03 3 views
1

전체 인수 시퀀스를 하나의 단일 문자열로 가져와야합니다. 다음 코드를 사용하여 쉼표와 대괄호 두 개를 모두 사용하고 있습니다.Java에서 단일 문자열로 모든 인수 가져 오기

Arrays.toString(args).replace(",", "").replace("[", "").replace("]", ""); 

의 내가 다음 인수와 함께 실행한다고 가정 해 봅시다 :

안녕하세요, 당신은, 당신은 프로그래머 야하고

Arrays.toString()를 사용하여 내가 갖는 좋은 사람 :

[Hello, you're, a, programmer,, you're, a, great, guy]

는 그래서, .replace()를 사용하여 실제로 얻을 :

"Hello, you're a programmer, you're a great guy"

내가 너무 지저분 위의 코드, 바로 그겁니다 노력을 찾을 수 있습니다. 그런 문장을 한 가지 방법으로 어떻게 줄일 수 있습니까?

+0

args의 가능한 값은 무엇입니까? –

+1

CLASSPATH 및 RMI와의 연결이 나를 벗어납니다. – EJP

답변

3

내가 좋아하는 풍경 랭의 StringUtils#join :

join(args); 

, 또는,

join(args, ' '); 

하지만 난 당신을 생각하면 부품 사이의 분리가 필요한 경우 잘못된 질문을하고 있습니다. 명령 행에서 전달 된 String을 그대로 유지하려면 쉘에서 인용해야합니다. 그런 다음 전체를 인수 배열의 단일 첫 번째 String으로 가져옵니다. 그렇지 않으면 연속 된 공백을 복구 할 방법이 없습니다.

java -jar MyApp.jar "Hello, you're a programmer, you're a great guy" 
0

문자열 배열은 다음과 같이 단일 문자열로 변환 될 수 있습니다.

StringBuilder builder = new StringBuilder(); 
    for (String str: args) 
    { 
     builder.append(str); 
    } 
    System.out.println(builder.toString()); 
0

쉼표로 문자열을 분할하여 ArrayList에 넣는 경우가 있습니까? 어떤 일이든, 계속 진행되는 모든 나쁜 일들을 추측하지 않고 질문에 구체적으로 대답하는 것입니다 ...

당신은 아마 그것을 대체 할 수 있습니다.하지만 ... meh.

public static void main(String[] args) { 
     ArrayList<String> myArray = new new ArrayList<String>(); 
     myArray.add("hello"); 
     myArray.add("I"); 
     myArray.add("Am"); 
     myArray.add("Ben"); 
     myArray.add("!"); 
     System.out.println(myArray.toString().replaceAll("\\[(.*)\\]", "$1").replaceAll(",", "")); 
    } 
0

당신 수

  1. 는 하나 개의 인수
  2. 수정 명령 줄 그래서 아무튼 것을 작동하는 방식으로 프로그램에 전달 될 수 있도록 문자열을 인용 프로그램을 사용하는 사람을 얻기 인수를 구분 기호로 사용하여 공백을 해석하지 않습니다.
  3. main()을 수정하십시오. 인수가 필요한 방식 (구체적으로 가능하지 않거나 가능하지는 않습니다)
  4. 새 배열 쓰기 su bclass 다르게
  5. 으로 동작하는이 .toString() 문자열
  6. 로 배열 요소 문자열 배열 요소를 연결 한 정적 메소드를 작성하고
의 인수 배열 전달을 연결하는 방법으로 새로운 배열 서브 클래스를 작성하여

마지막 작업은 아마도 가장 적은 작업 일 것입니다. 특히 많이 사용하지 않을 계획이라면 더욱 그렇습니다.

관련 문제