밴드 이름 정렬


22

도전 설명

당신은 이름이 각각의 많은 밴드에 의해 기록 된 많은 트랙과 음악 라이브러리를 가지고 같은 Queen, Aerosmith, Sunny Day Real Estate, The Strokes. 오디오 플레이어가 밴드 이름별로 라이브러리를 알파벳순으로 표시하는 경우 일반적 The으로 많은 밴드 이름이로 시작 하므로 파트를 건너 뛰 The므로 미디어 컬렉션을보다 쉽게 ​​탐색 할 수 있습니다. 이 과제에서 문자열 목록 (배열)이 주어지면 문자열을 그런 식으로 정렬해야합니다 (즉 The, 이름의 시작 부분에서 단어를 생략 ). 메소드를 작성하거나 전체 작업 프로그램을 작성할 수 있습니다.

샘플 입력 / 출력

[Queen, Aerosmith, Sunny Day Real Estate, The Strokes] -> [Aerosmith, Queen, The Strokes, Sunny Day Real Estate]
[The Ramones, The Cure, The Pixies, The Roots, The Animals, Enrique Iglesias] -> [The Animals, The Cure, Enrique Iglesias, The Pixies, The Ramones, The Roots]
[The The, The They, Thermodynamics] -> [The The, Thermodynamics, The They]

노트 / 엣지 케이스

  • 사전 식 정렬하기 때문에, 사례를 구분하지 않습니다 The Police, The police그리고 the police모두 동일합니다,

  • 귀하의 알고리즘은 첫 번째 생략한다 the밴드라는 이름 때문에, 단어 The The또는 The The Band두 번째로 일반적으로 분류되어 the,

  • 이름 The이 세 글자 인 밴드 는 정상적으로 정렬됩니다 (건너 뛰지 않음).

  • 이름이 같은 두 밴드의 순서는 하나가 the(like The Policeand Police)로 시작하며 정의되지 않습니다.

  • 밴드 이름이 둘 이상의 단어로 구성된 경우 단일 공백 ​​문자로 구분된다고 가정 할 수 있습니다. 선행 또는 후행 공백을 처리 할 필요가 없습니다.

  • 모든 입력 문자열이 일치합니다 [A-Za-z0-9 ]*. 즉 영어 알파벳의 소문자와 대문자, 숫자 및 공백 문자로만 구성됩니다.

  • 이는 과제이므로 코드를 최대한 짧게 만드십시오!


알파벳 문자 앞이나 뒤에 숫자 만있는 이름이 있습니까?
AdmBorkBork

숫자 만 문자열이 먼저 온
shooqie

1
The및 의 정렬 순서는 무엇입니까 The The? (이 정의되지 않은 이외의 경우 대부분의 답변은 아마도 변화에 필요)
브래드 길버트는 b2gills

Los Lobos는 어떻습니까?
njzk2

3
그건 그렇고 실제 밴드입니다. (함께 누가는 무엇의 경우, 때, 왜, 및 방법)
DanTheMan

답변:


7

파이썬, 56 62 64 바이트

lambda b:sorted(b,key=lambda x:(x,x[4:])[x.lower()[:4]=='the '])

시도 해봐

스트립이 일치하는 모든 문자를 폭파하고 빈 문자열로 정렬하고 @manatwork 사용하여 결함을 찾기 때문에 @Chris H 덕분에 올바르게 lstrip()처리되지 않았 음 을 지적했습니다 . 새 버전이 작동합니다.The Thereplace()

구 버전:

lambda b:sorted(b,key=lambda x:x.lower().lstrip('the '))

1
나는 확신하지 못한다. 마지막 목록에 "동물"을 추가 제공합니다 ['The The', 'The', 'The Animals', 'Thermodynamics', 'The They']. 두 번째 엣지 사례는 앉을 때 [ '동물', 'The', 'The', '열역학', 'The They']이어야합니다 (또는 두 번째와 세 번째 항목을 교체). 약간의 멍청이는 내부 공간 strip('the ')이 무시되고 있음을 시사합니다.for x in ['The The', 'The They', 'Thermodynamics', 'The', 'The Animals']: print (x.lower().strip('the '))
Chris H

replace()더 나은되지 않습니다 : 'what the snake'.replace('the ','',1)결과 'what snake'.
manatwork

5

V , 32 28 바이트

ç^The /dwA_
:sort
ç_/$xIThe 

온라인으로 사용해보십시오!

자체 참고 사항 : :sort하나의 명령에 6 바이트가 필요하지 않도록 약어를 만드십시오 !

설명:

ç^The /     "On every line starting with 'The ',
       dw   "Delete a word
         A_ "And (A)ppend an underscore '_'

:sort       "Sort all lines alphabetically

ç_/         "On every line containing an underscore,
   $x       "Delete the last character
     IThe   "And prepened 'The '

V에 익숙하지는 않지만 별표가 없으면 제대로 작동하는 것 같습니다. 이 입력이 입력과 일치합니까 아니면 실제로 필요하지 않습니까?
kirkpatt

1
@kirkpatt 좋은 생각이야! 그것은 거의 작동하지만 그다지 좋지는 않습니다. 예를 들어, 이 입력을 사용 하면 "The Ramones"및 "The Roots"뒤에 "Radiohead"가 잘못 입력 됩니다. 그러나, 그것은 저에게 아이디어를 제공합니다 ...
DJMcMayhem

? the와 같이 모두 소문자 이면 어떻게됩니까 the pAper chAse?
AdmBorkBork

4

망막 , 34 바이트

후행 줄 바꿈이 중요합니다.

%`^
$';
T`L`l`.+;
m`^the 

O`
.+;

I / O는 라인 당 하나의 밴드입니다.

온라인으로 사용해보십시오!

설명

%`^
$';

;구분자로 사용하여 각 줄을 복제하십시오 .

T`L`l`.+;

;소문자 앞에서 모든 것을 돌립니다.

m`^the 

the줄의 시작 부분에 나타나는 모든을 제거하십시오 .

O`

줄을 정렬하십시오.

.+;

정렬에 사용한 줄의 시작 부분을 제거하십시오.


첫 3 단계를 한 단계로 묶을 수 없습니까? PCRE 에서처럼 : s / (?i:the )?(.*)/ \L$1\E;$0/
Falco

@Falco .NET은 대체 문자열의 대소 문자 변경을 지원하지 않으며 Retina의 사용자 정의 대체 프로그램에도 아직 추가하지 않았습니다.
Martin Ender


3

펄, 52 바이트

@manatwork 덕분에 -13 바이트 감사
@ msh210 덕분에 -1 바이트 감사

sub f{lc pop=~s/^the //ri}print sort{f($a)cmp f$b}<>

라인 당 하나의 대역이 입력으로서 출력도 마찬가지입니다.

구현은 매우 간단합니다. 프로그램은 사용자 정의 함수 ( f) 의 도움을 받아 정렬 된 밴드 목록을 인쇄 하여 최종 행간없이 소문자 밴드 이름을 반환합니다 the.


일치하는 대신 대체하는 것이 더 짧습니다 sub f{lc$_[0]=~s/^the //ir}.
manatwork

실제로 1 바이트 더 짧습니다.
Dada

실제로 2 또는 3 바이트를 더 짧게 계산했습니다. lc매개 변수 주위의 괄호 와 i대체 플래그 가 필요하지 않습니다 . 아니면 작동하지 않는 테스트 사례를 만난 적이 있습니까?
manatwork

다시 생각하면, 각 줄 이름을 별도의 줄에서 가져 오면 명령 줄 옵션의 양을 줄일 수도 있습니다 perl -e 'sub f{lc$_[0]=~s/^the //ri}print sort{f($a)cmp f$b}<>' <<< $'Queen\nAerosmith\nSunny Day Real Estate\nThe Strokes'.
manatwork

1
lc pop대신 lc$_[0]say대신에 3 바이트를 저장하십시오 print. (후자 -M5.01는 무료이며, 무료입니다.) 문제의 첫 번째 테스트 사례만으로 Strawberry 5.20.2에서 테스트되었습니다.
msh210

2

파이썬, 66 72 69 바이트

lambda x:sorted(x,key=lambda a:a[4*(a.lower()[:4]=='the '):].lower())

키워드 인수 sorted와 함께 Python의 메소드를 사용 key하여 이름에서 "The"를 뺀 순서로 정렬하십시오. 이것은 람다입니다. 그것을 부르려면 f=앞에 두어 이름을 지정하십시오 .

이제 대소 문자를 구분하지 않습니다!


2
그래도 대소 문자를 구분하지 않아도됩니다 ... 밴드 이름은로 시작할 수 있습니다. the 이 경우이 방법이 제대로 작동하지 않습니다.
shooqie

@ shooqie 아, 나는 그 요구 사항을 보지 못했습니다. 내가 고칠 게
구리


2

펄 6 , 26 바이트

*.sort({fc S:i/^'the '//})

설명:

# 「*」 is the input to this Whatever lambda
*.sort(

  # sort based on the return value of this Block lambda
  {
    fc # foldcase the following

    # string replace but not in-place
    S
      :ignorecase
      /
        # at the start of the string
        ^

        # match 「the 」
        'the '

      # replace with nothing
      //
  }
)

테스트:

use v6.c;
use Test;

my @tests = (
  « Queen Aerosmith 'Sunny Day Real Estate' 'The Strokes' »
    => « Aerosmith Queen 'The Strokes' 'Sunny Day Real Estate' »,
  « 'The Ramones' 'The Cure' 'The Pixies' 'The Roots' 'The Animals' 'Enrique Iglesias' »
    => « 'The Animals' 'The Cure' 'Enrique Iglesias' 'The Pixies' 'The Ramones' 'The Roots' »,
  « 'The The' 'The They' Thermodynamics »
    => « 'The The' Thermodynamics 'The They' »,
);

# give it a lexical name for clarity
my &band-sort = *.sort({fc S:i/^'the '//});

plan +@tests;

for @tests -> ( :key(@input), :value(@expected) ) {
  is-deeply band-sort(@input), @expected, @expected.perl;
}
1..3
ok 1 - ("Aerosmith", "Queen", "The Strokes", "Sunny Day Real Estate")
ok 2 - ("The Animals", "The Cure", "Enrique Iglesias", "The Pixies", "The Ramones", "The Roots")
ok 3 - ("The The", "Thermodynamics", "The They")

2

PowerShell v2 +, 33 32 29 바이트

$args|sort{$_-replace'^the '}

@MathiasRJessen 덕분에 3 바이트 절약

입력은 명령 행 인수를 통해 이루어집니다. 대소 문자를 구분하지 않고 {...}정규 표현식 -replace을 수행하는 스크립트 블록의 결과를 기반으로 원래 이름을 정렬합니다 "the ".

PS C:\Tools\Scripts\golfing> .\sort-band-names.ps1 'the Ramones' 'The cure' 'The Pixies' 'The Roots' 'the Animals' 'Enrique Iglesias'
the Animals
The cure
Enrique Iglesias
The Pixies
the Ramones
The Roots

PS C:\Tools\Scripts\golfing> .\sort-band-names.ps1 'The The' 'The They' 'Thermodynamics'
The The
Thermodynamics
The They

PS C:\Tools\Scripts\golfing> .\sort-band-names.ps1 'THE STOOGES' 'The Strokes' 'The The' 'the they' 'the band' 'STP'
the band
THE STOOGES
STP
The Strokes
The The
the they

-replace대소 문자를 구분 기본적으로이다, '^the '패턴 충분합니다
마티아스 R. Jessen

@ MathiasR.Jessen 예, 알림 주셔서 감사합니다.
AdmBorkBork

@ValueInk 대소 문자 구분 및 내가 추가 한 마지막 예에 대한 Mathias의 의견을 참조하십시오.
AdmBorkBork

2

JavaScript / ECMAScript 6 93 70 바이트

70 Neil과 Downgoat에게 조언을 해주셔서 감사합니다

B=>B.sort((a,b)=>R(a).localeCompare(R(b)),R=s=>s.replace(/^the /i,''))

70 바이트 변형의 읽기 가능한 버전

let sortBandNames = (bandNames) => {
    let stripThe = (name) => name.replace(/^the /i, '');
    let compareFunc = (a, b) => stripThe(a).localeCompare(stripThe(b));
    return bandNames.sort(compareFunc)
};

93

f=B=>{R=s=>s.toLowerCase().replace(/the /,'');return B.sort((a,b)=>R(a).localeCompare(R(b)))}

93 바이트 변형의 읽기 가능한 버전

let sortBandNames = (bandNames) => {
    let stripThe = (name) => name.toLowerCase().replace(/the /, '');
    let compareFunc = (a, b) => stripThe(a).localeCompare(stripThe(b));
    return bandNames.sort(compareFunc)
};

그 정규 표현식에 포함되어 있지 않아야 ^합니까? 또한 localeCompare는 시스템에서 대소 문자를 구분하지 않으므로 regexp에 플래그 toLowerCase만 필요하지 않습니다 /i. 마지막으로 다음과 같이 골프를 칠 수 있습니다 B=>B.sort((a,b)=>...,R=s=>...).- sort설정하는 추가 매개 변수를 무시합니다 R.
Neil

^는 어디로 갈 것인가? 그것은 부정이 될 것이고 표현은 "the"와 일치하고 지워 져야합니다. 소문자 변환없이 로케일 비교를 사용해 보겠습니다.
Pandacoder

@Pandacoder ^shuold는 정규 표현식의 시작 부분으로 이동
Downgoat

@Downgoat 주어진 사례를 모두 테스트하고 몇 가지 사례를 통해 RegEx를 중단하려는 의도를 가지게되었습니다.
Pandacoder

@Pandacoder는 유효하지 않습니다. ^는 "the"가 스펙에 따라 시작해야하는 앵커입니다
Downgoat

1

자바 8, 178 바이트

void q(String[]s){java.util.Arrays.sort(s,(a,b)->(a.toLowerCase().startsWith("the ")?a.substring(4):a).compareToIgnoreCase(b.toLowerCase().startsWith("the ")?b.substring(4):b));}

언 골프 버전 :

void sort(String[] bands) {
    java.util.Arrays.sort(bands, (a, b) -> 
        (a.toLowerCase().startsWith("the ") ? a.substring(4) : a).compareToIgnoreCase(
            b.toLowerCase().startsWith("the ") ? b.substring(4) : b
        )
    );
}

다음과 같이 전화하십시오.

public static void main(String[] args) {
    String[] bands = {"The Strokes", "Queen", "AC/DC", "The Band", "Cage the Elephant", "cage the elephant"};
    sort(bands); // or q(bands) in the golfed version
    System.out.println(java.util.Arrays.toString(bands));
}

거의 1 년 전에이 질문에 답한 것으로 알고 있지만 몇 가지 골프를하실 수 있습니다. 당신은 자바 8을 사용 상태 때문에, 당신은 변경할 수 있습니다 void q(String[]s){...}s->{...}. 그리고 당신은 모두를 변경할 수 있습니다 (x.toLowerCase().startsWith("the ")?x.substring(4):x)x.replaceFirst("(?i)the ",""). 따라서 총계는 다음과 같습니다. s->{java.util.Arrays.sort(s,(a,b)->a.replaceFirst("(?i)the ","").compareToIgnoreCase(b.replaceFirst("(?i)the ","")));}- 118 바이트
Kevin Cruijssen

replaceFirst와 깔끔한 트릭. 내가 이것에 대답했을 때 나는 s->{ ... }허용되지 않은 다른 대답에 대해 몇 번 들었고 타입과 그 밖의 것들에 대한 완전한 메소드 서명을 가져야했다. 그때 이후로 바뀌 었는지 모르겠습니다.
저스틴

당시에는 확실하지 않지만 요즘에는 Java 또는 C # .NET에서 골프를 치는 모든 사람들에게 허용되고 사용됩니다.
Kevin Cruijssen

0

Nim , 96 바이트

import algorithm,strutils,future
x=>x.sortedByIt toLower it[4*int(it.toLower[0..3]=="the ")..^0]

그것들은 import너무 많은 바이트를 차지합니다.:|

파이썬 답변 의 번역 .

이것은 익명의 절차입니다. 사용하려면 테스트 절차를 거쳐야합니다. 테스트에 사용할 수있는 전체 프로그램은 다음과 같습니다.

import algorithm,strutils,future
proc test(x: seq[string] -> seq[string]) =
 echo x(@["The The", "The They", "Thermodynamics"]) # Substitute your input here
test(x=>x.sortedByIt toLower it[4*int(it.toLower[0..3]=="the ")..^0])

0

하스켈, 84 바이트

import Data.List
p(t:'h':'e':' ':s)|elem t"Tt"=s
p s=s
sortBy(\a b->p a`compare`p b)

와 전화

sortBy(\a b->p a`compare`p b)["The The", "The They", "Thermodynamics"]

테스트 케이스 :

let s = sortBy(\a b->p a`compare`p b)
and[s["Queen", "Aerosmith", "Sunny Day Real Estate", "The Strokes"]==["Aerosmith", "Queen", "The Strokes", "Sunny Day Real Estate"],s["The Ramones", "The Cure", "The Pixies", "The Roots", "The Animals", "Enrique Iglesias"]==["The Animals", "The Cure", "Enrique Iglesias", "The Pixies", "The Ramones", "The Roots"],s["The The", "The They", "Thermodynamics"]==["The The", "Thermodynamics", "The They"]]

0

MATL , 16 바이트

tk'^the '[]YX2$S

입력 형식은 (각 라인은 테스트 케이스에 해당합니다)

{'Queen', 'Aerosmith', 'Sunny Day Real Estate', 'The Strokes'} 
{'The Ramones', 'The Cure', 'The Pixies', 'The Roots', 'The Animals', 'Enrique Iglesias'}
{'The The', 'The They', 'Thermodynamics'}

온라인으로 사용해보십시오!

설명

t        % Implicitly input cell array of strings. Push another copy
k        % Convert to lowercase
'^the '  % String to be used as regex pattern: matches initial 'the '
[]       % Empty array
YX       % Regex replacement: replace initial 'the ' in each string by empty array
2$S      % Sort input according to the modified cell array. Implicitly display

0

C #, 139 바이트

using System.Linq;System.Collections.IEnumerable S(string[] l)=> l.OrderBy(b=>(b.ToLower().StartsWith("the ")?b.Substring(4):b).ToLower());

온라인으로 시도하십시오!

사용 횟수를 세지 않으면 대답은 102 바이트입니다.


난 당신이 마지막을 무시할 수 있다고 생각 ToLower()때문에 대소 문자를 구별 요구 사항
TheLethalCoder

또한 일부 바이트를 절약해야하는 익명 함수로 만들 수 있습니다.
TheLethalCoder

l=>l.OrderBy(b=>(b.ToLower().StartsWith("the ")?b.Substring(4):b));67 바이트를 들어 다음은에 추가 할 필요가 using System.Linq;너무
TheLethalCoder

@ TheLethalCoder : ToLower대소 문자를 구분하지 않는 요구 사항 때문에 두 번째가 필요합니다 . 그렇지 않으면 순서는 대소 문자를 구분합니다.
raznagul

그래도 익명 함수로 변환하는 것에 대한 요점은 여전히 ​​유효합니다.
TheLethalCoder

0

BASH, 64 바이트

sed 's/^the / /;s/^The /    /'|sort -fb|sed 's/^ /the /;s/^ /The /'

입력 : stdin, 라인 당 하나의 밴드. 출력 : stdout

참고 : 두 번째 대체 (s / ^ The / / 및 s / ^ / The /)는 탭 문자를 사용하므로 항상 올바르게 복사 / 붙여 넣기하지는 않습니다.


0

Bash + coreutils, 44 바이트

sed '/^the /I!s,^,@ ,'|sort -dk2|sed s,@\ ,,

설명 : 입력 및 출력 형식은 라인 당 하나의 대역입니다.

sed '/^the /I!s,^,@ ,'   # prepend '@ ' to each line not starting with 'the ', case
                         #insensitive. This adds a temporary field needed by sort.
sort -dk2                # sort in ascending dictionary order by 2nd field onward
sed s,@\ ,,              # remove the temporary field

테스트 실행 (EOF가 포함 된 여기 문서를 끝 마커로 사용) :

./sort_bands.sh << EOF
> Queen
> Aerosmith
> Sunny Day Real Estate
> The Strokes
> EOF

산출:

Aerosmith
Queen
The Strokes
Sunny Day Real Estate

0

Vim, 18 바이트

이제 이것이 가능하다는 것을 깨달았으므로 26 바이트 V 응답에 부끄럽습니다. 특히 V가 vim보다 짧아야하기 때문입니다. 그러나 이것은 거의 내장되어 있습니다.

:sor i/\(The \)*/<CR>

설명 (vim help에서 직접) :

                            *:sor* *:sort*
:[range]sor[t][!] [b][f][i][n][o][r][u][x] [/{pattern}/]
            Sort lines in [range].  When no range is given all
            lines are sorted.

            With [i] case is ignored.

            When /{pattern}/ is specified and there is no [r] flag
            the text matched with {pattern} is skipped, so that
            you sort on what comes after the match.
            Instead of the slash any non-letter can be used.

0

C는 216 212 135 + 5 ( qsort) = 221 (217) 140 바이트

M(void*a,void*b){char*A,*B;A=*(char**)a;B=*(char**)b;A=strcasestr(A,"The ")?A+4:A;B=strcasestr(B,"The ")?B+4:B;return strcasecmp(A,B);}

글쎄, 나는 마침내 이것을 마무리하기 위해 돌아왔다. C . 골프 팁은 대단히 감사합니다.

이 제출에서 M에 제공되는 비교 함수 qsort입니다. 따라서,이 호출을 사용해야합니다 qsort형식으로 명령 줄 인수를 포함하고 제공하는 인수의 수입니다.qsort(argv++,argc--,8,M)argvargc

온라인으로 사용해보십시오!


0

05AB1E , 27 바이트 (비경쟁)

vyð¡RD¤…TheQsgα£Rðý})‚øí{ø¤

온라인으로 사용해보십시오!

설명

vyð¡RD¤…TheQsgα£Rðý})‚øí{ø¤   Argument l
v                 }           For each y in l, do:
 yð¡                            Split y on space
    RD                          Reverse and duplicate
      ¤…TheQ                    Last element equals "The" (true = 1, false = 0)
            sgα                 Absolute difference with length of array
               £                Get elements from index 0 to calculated difference
                R               Reverse
                 ðý             Join on space
                    )‚øí      Pair each element with original
                        {ø¤   Sort and get the original band name

0

그루비, 34 바이트

{it.sort{it.toLowerCase()-'the '}}

내 대답은 41 % .toLowerCase()입니다.


산출

실행할 때 ...

({it.sort{it.toLowerCase()-'the '}})(['The ramones','The Cure','The Pixies','The Roots','The Animals','Enrique Iglesias'])

결과는 ...

[The Animals, The Cure, Enrique Iglesias, The Pixies, The ramones, The Roots]

디버그 또는 오류 출력이 없습니다.


0

q / kdb +, 36 33 바이트

해결책:

{x(<)@[x;(&)x like"[Tt]he *";4_]}

예:

q){x(<)@[x;(&)x like"[Tt]he *";4_]}("Queen";"Aerosmith";"Sunny Day Real Estate";"The Strokes";"the Eagles")
"Aerosmith"
"the Eagles"
"Queen"
"The Strokes"
"Sunny Day Real Estate"

설명:

각 입력 문자열에서 "[Tt] he"를 제거하고이 목록을 정렬 한 다음 정렬 된 목록의 색인 작성을 기반으로 원래 목록을 정렬하십시오.

{x iasc @[x;where x like "[Tt]he *";4_]} / ungolfed solution
{                                      } / lambda function
        @[x;                       ;  ]  / apply function to x at indices
                                    4_   / 4 drop, remove first 4 items
            where x like "[Tt]he *"      / where the input matches 'The ...' or 'the ...'
   iasc                                  / returns sorted indices
 x                                       / index into original list at these indices


-2

자바 176158 바이트

public String[]sort(String[]names){
  for(int i=-1;++i<names.length;)
    if(names[i].startsWith("(The |the )"))
      names[i]=names[i].substring(4);
  return Arrays.sort(names,String.CASE_INSENSITIVE_ORDER);
  }

주요 기능

public static void main(String[]args){
  Scanner s = new Scanner(System.in);
  List<String> list= new ArrayList<>();
  while(!(String h = s.nextLine).equalsIgnoreCase("~")){
    list.add(h);
  }
System.out.println(sort(list.toArray(newString[0]))

); }

골프 정렬 기능 :

String[]s(String[]n){for(int i=-1;++i<n.length;)if(n[i].startsWith("(The |the )"))n[i]=n[i].substring(4);return Arrays.sort(n,String.CASE_INSENSITIVE_ORDER);}

18 바이트를 절약 해 준 @raznagul에게 감사합니다


이름이로 시작하면 작동하지 않습니다 the . 정렬은 대소 문자를 구분하지 않아야합니다.
shooqie

이것은 전혀 작동하지 않습니다 ... 문자열은 변경할 수 없습니다. 너는하고 싶다 public String[]sort(String[]names){ for(int i=-1;++i<names.length;) names[i]=names[i].replaceFirst("(the|The)", ""); return Arrays.sort(names,String.CASE_INSENSITIVE_ORDER); }. 그리고 작동해야한다. 그리고 불변의 끈을 묶어 라
Socratic Phoenix

고쳤지만 작은 "the"로 시작하는 밴드 하나를 찾으십시오
Roman Gräf

2
Arrays.sort유형 void를 반환
user902383

1
@ RomanGräfthe pAper chAse
AdmBorkBork
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.