2017-09-18 1 views
0

* 편집 2, "선언되지 않은 변수"다음은 텍스트 북에서 제공하는 예제입니다. 선언되지 않은 변수를 말할 때 잘못된 용어를 사용했을 수도 있습니다.사용자 서식 지정 Java의 특정 지점에서 특정 문자로 입력

  • String fName = "Harry";
  • String lName = "Morgan";
  • 문자열 이름 = fName + lName;
  • 문자열이 "HarryMorgan"이됩니다.
  • 성과 이름을 공백으로 구분하려면 어떻게합니까? 문제 없음 :
  • 문자열 이름 = fName + ""+ lName;
  • 이 문은
  • fName, 문자열 리터럴 ""및 lName의 세 문자열을 연결합니다.
  • 결과는 "해리 모건"

가 제공하는 표창장은 지침입니다. 사용하기 전에 각 인용문의 정확성을 확인하십시오.

* 편집 : 질문 : 신고되지 않은 문자열에 문자를 삽입하려면 어떻게해야합니까?

예 :

Input: X839WS21R4E877 
Display: X-839 WS21 R4-E87 (7) 

Input: x83rws21b3e87a 
Display: X-83R WS21 B3-E87 (A) 

내가 사용자로부터 14 문자 입력을 복용하고 있습니다. 공백으로 서식을 지정하고 입력에 "-"를 입력해야합니다. 또한 모든 편지는 대문자로 표기해야합니다.

다음 코드는 내가 가지고있는 것입니다.

여기는 또 다른 게시물입니다. 나는 작동 할 수도 있다고 생각했지만 어떻게 코드를 구현했는지 또는 작동하는지 이해할 수 없습니다. Basic way to insert character into string.

다음 링크는 다른 유사한 질문입니다. Python vs of Question

이 링크는 검색을 시도했지만 문자열을 int로 사용하지 않아 관련성이 있다고 생각하지 않습니다. Example of search results

필자의 시나리오는 다른 유형의 문자를 알 수없는 문자열에 삽입 할 수있는 이점이 있다고 믿습니다. 나는/당신이 특수 문자를 삽입 할 수 있다는 것을 알고 있습니다. 그러나 지금까지 발견 한 모든 것은 선언 된 변수를 사용한다는 가정을 사용합니다.

.substring (x, x) 메서드를 사용하여 설정 점에 공백과 "-"문자를 삽입해야한다고 생각합니다.하지만 내 한계를 엉망으로 만드는 방법을 확신하지 못합니다. 14 자.

도움을 주셔서 감사합니다.내가 올바르게 입력 출력 예제를 이해한다면

+0

우리가 어디에 있는지에 예를 입력 및 출력 문자열의 부부를받을 수를 문자를 추가/제거 하시겠습니까? –

+0

죄송합니다. 그러나 귀하의 질문은 정확히 무엇입니까? – Pshemo

+0

"선언되지 않은 문자열"은 무엇을 의미합니까 – Pshemo

답변

0

는 가장 좋은 방법은 다음과 같이 정규식 그룹과 String::replaceAll을 사용하는 것입니다

String[] strings = {"X839WS21R4E877", "x83rws21b3e87a"}; 
for(String str : strings){ 
    str = str.toUpperCase();// to convert the string to UpperCase 
    str = str.replaceAll("([A-Z0-9])([A-Z0-9]{3})([A-Z0-9]{4})([A-Z0-9]{2})([A-Z0-9]{3})([A-Z0-9])", 
      "$1-$2 $3 $4-$5 ($6)"); 

    System.out.println(str); 
} 

출력

X-839 WS21 R4-E87 (7) 
X-83R WS21 B3-E87 (A) 

  • ([A-Z0-9]) Groupe의 1 경기 첫 글자 또는 숫자
  • ([A-Z0-9]{3}) Groupe의 3 경기 :

    세부 사항 당신은 previouse의 그룹에 입력으로 나눔해야

    ([A-Z0-9])([A-Z0-9]{3})([A-Z0-9]{4})([A-Z0-9]{2})([A-Z0-9]{3})([A-Z0-9]) 
    

    6 개 그룹이 있습니다 regew 3 문자 또는 숫자
  • ([A-Z0-9]{4}) groupe 4는 4 문자 또는 숫자와 일치합니다.
  • ([A-Z0-9]{2}) Groupe의 2 경기 2 개 문자 또는 숫자
  • ([A-Z0-9]{3}) Groupe의 3 경기 3 개 문자 또는 숫자
  • ([A-Z0-9]) Groupe의 6 경기 마지막 문자
+0

내 선생님이 저를 따라 나를 도울 수 있다고 확신하지만 어떻게 작동하는지 완전히 이해하지 못합니다. 그러나 스캐너에서 사용자의 의견을 받고 있습니다. 그래서 코드를 작성할 때 입력이 무엇인지 알 수 없습니다. 희망이 당신을 명확하게합니다. – Everette

+0

@Everette 사용자가 입력 한 내용으로'String [] strings = { "X839WS21R4E877", "x83rws21b3e87a"};'를 대체 할 수 있습니다.이 해결책을 전역 로직을 이해하는 데만 사용합니다. –

+0

@Everette if (name.length()> 14) { string cutName = name.substring (0, 14) .toUpperCase(); ([A-Z0-9] {3}) ([A-Z0-9] {4}) ([A-Z0-9] {0} 2}) ([A-Z0-9] {3}) ([A-Z0-9]) ", "$ 1- $ 2 $ 3 $ 4- $ 5 ($ 6) "); }'이게 도움이 될 것입니다. –

관련 문제