คำสั่งลูกแมว


65

ลูกแมวนั้นเหมือนแมวมาก ความแตกต่างที่สำคัญบางประการคือความน่ารักขาดสติปัญญาและขนาด ในทำนองเดียวกันcatคำสั่งจะแตกต่างจากkittenคำสั่ง โชคดีที่มีความแตกต่างเพียงอย่างเดียวในกรณีนี้ ในคำสั่ง kitten ตัวอักษรตัวพิมพ์ใหญ่ทั้งหมดจะถูกแทนที่ด้วยตัวอักษรตัวเล็ก


วัตถุประสงค์

catจะใช้โปรแกรมที่มีลักษณะการทำงานคล้ายกับ อักขระทั้งหมด[A-Z]เป็นตัวพิมพ์เล็กที่แสดงผลลัพธ์


อินพุต

รายการไฟล์เป็นอาร์กิวเมนต์บรรทัดคำสั่ง หากไม่มีไฟล์อยู่ในรายการให้อ่านจากอินพุตมาตรฐาน อินพุตอาจมีอักขระและอักขระที่ไม่สามารถพิมพ์ได้นอกช่วง ASCII


เอาท์พุต

หากอินพุตเป็นไฟล์จำนวนมากให้ต่อเนื้อหาและส่งออกอักขระทั้งหมดเป็นตัวพิมพ์เล็ก หากอ่านจาก STDIN ให้ส่งเนื้อหาของ STDIN ด้วยตัวอักษรตัวพิมพ์ใหญ่ทั้งหมดเป็นตัวพิมพ์เล็ก

หมายเหตุ: ทำให้ตัวอักษรเป็นตัว[A-Z]พิมพ์เล็กเท่านั้น เป็นที่ยอมรับไม่ได้หากตัวละครอื่น ๆ ทำด้วยตัวพิมพ์เล็ก


ตัวอย่าง

$ echo "HelLo" > file.txt
$ kitten file.txt
hello
$ echo "Good Bye" | kitten
good bye
$ echo "Ä" | kitten
Ä

ตามปกติด้วยอย่างน้อยไบต์ชนะ

ลีดเดอร์


นี่คือตัวอย่างข้อมูลเพื่อสร้างทั้งกระดานผู้นำปกติและภาพรวมของผู้ชนะตามภาษา

เพื่อให้แน่ใจว่าคำตอบของคุณปรากฏขึ้นโปรดเริ่มคำตอบด้วยหัวข้อโดยใช้เทมเพลต Markdown ต่อไปนี้:

# Language Name, N bytes

ที่Nมีขนาดของส่งของคุณ หากคุณปรับปรุงคะแนนของคุณคุณสามารถเก็บคะแนนเก่าไว้ในบรรทัดแรกโดยการตีพวกเขาผ่าน ตัวอย่างเช่น

# Ruby, <s>104</s> <s>101</s> 96 bytes

หากคุณต้องการรวมหลายตัวเลขไว้ในส่วนหัวของคุณ (เช่นเนื่องจากคะแนนของคุณคือผลรวมของไฟล์สองไฟล์หรือคุณต้องการแสดงรายการบทลงโทษการตั้งค่าสถานะของล่ามแยกต่างหาก) ตรวจสอบให้แน่ใจว่าคะแนนจริงเป็นตัวเลขสุดท้ายในส่วนหัว:

# Perl, 43 + 2 (-p flag) = 45 bytes

นอกจากนี้คุณยังสามารถตั้งชื่อภาษาให้เป็นลิงค์ซึ่งจะปรากฏในตัวอย่างกระดานแต้มนำ:

# [><>](http://esolangs.org/wiki/Fish), 121 bytes


2
ด้วยการระบุอย่างชัดเจนว่า "ทำให้ตัวอักษรเป็นตัว[A-Z]พิมพ์เล็ก" เท่านั้นคุณคาดหวังอินพุต Unicode หรือไม่
AdmBorkBork

2
@ TimmyD ใช่ แต่ส่วนใหญ่เพื่อป้องกันไม่ให้ผู้ใช้งานในตัวเพื่อฟังก์ชั่นตัวพิมพ์เล็ก
TheNumberOne

3
@FryAmTheEggman Permalink
Dennis

1
วิธีการเกี่ยวกับÜ, Ñและชอบ?
เสา

2
มันจึงดีเมื่อคุณไม่เห็น Pyth ใด ๆ ใน codegolf แล้ว ...
JMM

คำตอบ:


52

Perl, 6 ไบต์

5 ไบต์รหัส + 1 บรรทัดคำสั่งไบต์

$_=lc

ตัวอย่างการใช้งาน:

echo ABCdef | perl -p kitten.pl
abcdef

การยืนยันพฤติกรรม Unicode ที่ถูกต้อง:

echo "HelloÉ" | perl -p kitten.pl
helloÉ

2
คุณแน่ใจหรือไม่ว่าสิ่งนี้ไม่มีผลต่ออักขระ Unicode?
Martin Ender

7
@ MartinBüttner ไม่เป็นเช่นนั้น เราอยู่ในหมวดหมู่ "เป็นอย่างอื่น" ที่นี่: "กฎ ASCII ใช้สำหรับการเปลี่ยนเคส ตัวพิมพ์เล็กของตัวละครใด ๆ ที่อยู่นอกช่วง ASCII คือตัวของมันเอง” +1 ของฉันสำหรับคำตอบ
xebtl

178

Bash, 19 ไบต์

cat "$@"|tr A-Z a-z

วิธีที่ดีที่สุดในการทำลูกแมวคือการใช้แมวจริง

ตัวอย่างการวิ่ง

$ ./kitten kitten
cat "$@"|tr a-z a-z

39
เครื่องมือที่เหมาะสมสำหรับงาน
Digital Trauma

120
+1 เพื่อต้องการแมวเพียงตัวเดียวที่จะสร้างลูกแมวได้โปรดพาฉันแมวสองตัวไปด้วยเสมอ
SnoringFrog

4
ตอนนี้ทำให้ฉันนึกถึงman womanเรื่องตลกเหล่านั้น...
xebtl

2
+1 สำหรับการไปทำโคลนนิ่งแมวแทนที่จะใช้วิธีผสมพันธุ์ในการสร้างลูก
MD-Tech

25
@SnoringFrog เขาทุบตีอีกคนหนึ่ง
TheNumberOne

22

Perl, 11 ไบต์

10 ไบต์รหัส + 1 บรรทัดคำสั่งไบต์

y/A-Z/a-z/

ตัวอย่างการใช้งาน:

perl -p entry.pl input1.txt input2.txt
echo "ABCdef" | perl -p entry.pl

15

Python 3, 77 ไบต์

from fileinput import*
print(end=b''.join(input(mode='rb')).lower().decode())

1
นั่นเป็นเรื่องที่ฉลาดใช้ไบต์เพื่อหลีกเลี่ยงการไม่ใช่ ASCII จากการเปลี่ยนแปลง
matsjoyce

11

ทับทิมขนาด 13 ไบต์

จำนวนไบต์ประกอบด้วย 1 ไบต์สำหรับpแฟล็ก ruby -p kitten.rbใช้มันเพื่อต้องการ:

$_.downcase!

รับอินพุตจาก stdin หรืออาร์กิวเมนต์ไฟล์เช่นเดียวกับแมวโตขึ้น


นี่เป็นเพียงตัวพิมพ์เล็ก ASCII หรือตัวละครอื่น ๆ เช่นกันÄใช่ไหม
Paŭlo Ebermann

1
@ PaŭloEbermann: ฉันเพิ่งทดสอบมัน: echo "HelloÉ" | ruby -p kitten.rb->helloÉ
Neil Slater

ฉันสาบานว่ามีความคิดเห็นมากมายเกี่ยวกับเมื่อวานนี้ ฉันไม่รู้ว่าคนเหล่านั้นไปที่ใด แต่: ใช่มันทำงานได้ตามข้อกำหนด
daniero

5

PowerShell, 112 ไบต์

function l([string]$a){97..122|%{[char]$b=$_;$a=$a-split$b-join$b};$a}if($args){$args|%{l(gc $_)}}else{l $input}

ไม่สามารถอ่านได้อย่างน่ากลัว นี่คือรุ่นที่ขยายเล็กน้อยด้านล่าง:

function l([string]$a){
  97..122|%{
    [char]$b=$_
    $a=$a-split$b-join$b
  }
  $a
}

if($args){
  $args|%{
    l(gc $_)
  }
}
else{
  l $input
}

กำหนดฟังก์ชั่นภายในlซึ่งวนซ้ำวนซ้ำจาก 97 เป็น 112 (เช่น ASCII aถึง ASCII z) แบ่งสตริงอินพุตให้กับอักขระนั้น (yay ตัวพิมพ์เล็กและตัวพิมพ์ใหญ่) จะเข้าร่วมกับตัวพิมพ์เล็ก "ถูกต้อง" โปรดทราบว่าใช่นี่หมายถึง "การทดสอบ" โดยย่อจะกลายเป็น "T st" ตามที่วนซ้ำผ่านeตัวอย่างเช่น ไม่ส่งผลกระทบต่อเอาต์พุต

ครึ่งหลังเป็นบิตที่ยุ่งยากที่จะคิดออกว่าเรามีไพพ์ไลน์ (เทียบเท่ากับ stdin สำหรับ PowerShell) หรืออินพุตบรรทัดคำสั่ง ตัวแปรพิเศษ$argsเป็นปัจจุบันเท่านั้นถ้าใส่บรรทัดคำสั่งเป็นปัจจุบันเพื่อให้เราห่วงแต่ละคนgc(สำหรับGet-Content) และ schlep lว่าถึง มิฉะนั้นเราก็แค่$inputอยากlได้ โปรดทราบว่าเราสามารถสลับคำสั่ง if / else ของเรา (เช่น, if($input)) แต่เนื่องจาก "อินพุต" เป็นอักขระหนึ่งตัวที่ยาวกว่า "args" ด้วยวิธีนี้จะสั้นกว่า


@Nazek ใน"String".ToLower()ตัวก็จะเป็นตัวอักษร Unicode ตัวพิมพ์เล็กซึ่งผิดกฎ มีหลายสิ่งที่ PowerShell ทำไม่ถูกต้องเกี่ยวกับ Unicode แต่น่าเสียดายที่นี่เป็นหนึ่งอินสแตนซ์ที่ทำงานอย่างถูกต้อง
AdmBorkBork


5

R, 97 ไบต์

cat(chartr("A-Z","a-z",sapply(if(length(a<-commandArgs(T))){a}else{"stdin"},readLines)),sep="\n")

การใช้งาน:

$ echo "HeLlo" > file.txt
$ Rscript kitten.R file.txt
hello
$ echo "Good Bye" | Rscript kitten.R
good bye
$ echo "bLABLa" > file2.txt
$ Rscript kitten.R file.txt file2.txt
hello
blabla
$ echo Ä | Rscript kitten.R
Ä

5

CoffeeScriptขนาด 292 ไบต์

f=require 'fs';d='';p=process;v=p.argv;s=p.stdin;l=((d)=>console.log d.replace /([A-Z])/g,(a,l)=>l.toLowerCase());if v.length>2 then(v.forEach (v,i)=>if i>1 then(f.exists v, (e) =>if e then(f.readFile v,'utf-8',(r,d)=>l d) else l v))else(s.resume();(s.on 'data',(c)=>d+=c);s.on 'end',()=>l d)

การใช้งาน:

$ echo "HelLo" > file.txt
$ coffee kitten.coffee file.txt
hello
$ echo "Good Bye" | coffee kitten.coffee
good bye
$ echo "Ä" | kitten
Ä
$ coffee kitten.coffee file.txt SoMeTeXt
sometext
hello

การมีส่วนร่วมครั้งแรกของฉันใน codegolf ดังนั้นโปรดอย่าหยาบคาย :)

แน่นอนว่ารหัสนี้สามารถเล่นกอล์ฟได้มากขึ้นและกาแฟ / จาวาสคริปต์ไม่ใช่ตัวเลือกที่ดีที่สุดในการทำเช่นนั้น แต่ทำในสิ่งที่คาดหวัง

เมื่ออ่านข้อโต้แย้งมันจะดูแลเกี่ยวกับการมีอยู่ของไฟล์ด้วย (หากไฟล์ไม่มีอยู่สตริงจะถูกวางไว้)

ความช่วยเหลือหรือคำแนะนำในการปรับปรุงรหัสนี้ยินดีต้อนรับ!


4

จูเลีย 123 ไบต์

f(s)=for l=readlines(s) print(replace(l,r"[A-Z]",lowercase))end
A=ARGS
length(A)>0?for i=A open(f,i)end:open(f,readline())

Ungolfed:

function file_to_lower(s::Stream)
    # Loop over the lines of the input stream
    for l in readlines(r)
        # Print the lowercased line
        print(replace(l, r"[A-Z]", lowercase))
    end
end

if length(ARGS) > 0
    # Loop over the files specified from the command line
    for i in ARGS
        # Open the file, apply the function, then close it
        open(file_to_lower, i)
    end
else
    # Get the input file from STDIN
    open(file_to_lower, readline())
end

4

CJam, 18 ไบต์

ea_:gs{q}?'_,_eler

รายการไฟล์จะต้องให้ในรูปแบบของ URL ซึ่งเป็นรูปแบบ CJam เท่านั้นที่เข้าใจ

ตัวอย่างการวิ่ง

$ cjam kitten <<< "AaÁáÄä"
aaÁáÄä
$ cjam kitten file:///home/dennis/kitten file:///home/dennis/kitten
ea_:gs{q}?'_,_elerea_:gs{q}?'_,_eler

มันทำงานอย่างไร

ea                  Push the array of command-line arguments.
  _                 Push a copy.
   :g               Retrieve the contents of all files with those URLS.
     s              Flatten the resulting array of strings.
      {q}           Push a block that reads all input from STDIN.
         ?          Select the string of the array of args is non-empty.
                    Otherwise, execute the code block.
          '_,       Push the string of all ASCII characters before _.
             _el    Push a copy and convert it to lowercase.
                er  Perform transliteration.

4

Python 2, 100 102 97 ไบต์

แก้ไขการทำงาน (และเพิ่ม 4 ไบต์) โดย matsjoyce โชคดีที่ฉันบันทึกสองไบต์ด้วยการเปลี่ยนเป็น Python 2

from sys import*;print''.join(f.read().lower()for f in(map(open,argv[1:])if argv[1:]else[stdin]))

รับอาร์กิวเมนต์จากบรรทัดคำสั่งหรือจาก STDIN หากไม่พบอาร์กิวเมนต์

นี่เป็นการละเมิดข้อโต้แย้งเริ่มต้นของบางฟังก์ชั่น โดยค่าเริ่มต้นopenใช้โหมดข้อความแบบอ่านอย่างเดียวซึ่งเป็นสิ่งที่เราต้องการ readหากถูกเรียกโดยไม่มีอาร์กิวเมนต์จะส่งคืนข้อความทั้งหมดในสตรีม

Ungolfed:

import sys

if len(sys.argv) > 1:              # If we have command-line arguments:
    source = []                    # Initialize an empty list
    for path in sys.argv[1:]:      # Iterate through every filename we have
        kitfile = open(path, 'rt') # Open the file in read-only text mode
        source.append(kitfile)     # Add it to the list
else:                              # Otherwise, if the args are empty:
    source = [sys.stdin]           # Set our source to STDIN wrapped in a list

kittened = []                      # Initialize an empty list
for kitfile in source:             # Iterate through every file (or just STDIN)
    text = kitfile.read()          # Read everything from the stream
    kitten_text = text.lower()     # Make it lowercase
    kittened.append(kitten_text)   # Add it to the list
final = ''.join(kittened)          # Join everything together
print final                        # Print the result

1
สิ่งนี้จะไม่ทำงานสำหรับ stdin เนื่องจากคุณอ่านเพียงหนึ่งบรรทัดเท่านั้นและไม่ต้องใช้ตัวพิมพ์เล็ก
matsjoyce

@matsjoyce ฉันแก้ไขรหัสแล้ว ขอบคุณสำหรับการเตือน! น่าเสียดายที่มันเพิ่มสี่ไบต์ แต่ไม่ขึ้นอยู่กับinputว่าไม่ได้ประเมินอีกต่อไปฉันสามารถเปลี่ยนเป็น Python 2 และลบวงเล็บprintได้
bkul


3

C, 106 108 ไบต์

แก้ไข: แก้ไขข้อผิดพลาดที่คืบคลานเมื่อบีบไบต์ Stdin ไม่ทำงาน แต่ตอนนี้มันเป็นแล้ว

ฉันค่อนข้างมั่นใจว่าฉันสามารถบีบบางส่วนออกไปได้ แต่นี่เป็นภาษาที่เข้าใจง่ายไม่ใช่ภาษาที่ไม่เหมาะสมเลย

main(n,s,f,c)void**s;{for(f=n-1?open(*++s,0,0):0;read(f,&c,1);putchar(64<c&c<91?c+32:c));n-->2&&main(n,s);}

และเวอร์ชันที่จัดรูปแบบค่อนข้างเรียบร้อยสำหรับการอ่าน:

main(n,s,f,c)
void**s;
{
    for(f=n-1?open(*++s,0,0):0; read(f,&c,1); putchar(64<c&c<91?c+32:c));
    n-->2&&main(n,s);
}

+1 เพราะสิ่งนี้สอนฉันว่าพารามิเตอร์ int โดยนัยเป็นไปได้เฉพาะกับไวยากรณ์ K&R
Felix Dombek

2

Mathematica, 66 ไบต์

kit=StringReplace[#,x:RegularExpression["[A-Z]"]:>ToLowerCase[x]]&

เรียกได้ว่าเป็น

kit@"HelLo"

Mathematica มีToLowerCaseฟังก์ชั่นอยู่แล้วแต่สามารถแปลงอักขระพิเศษ (Unicode และคณิตศาสตร์) ได้เช่นกัน ดังนั้นฉันจึงต้องเลี้ยงลูกแมว ฟังก์ชั่นนี้จะรับอินพุตใด ๆ


@TheNumberOne - นั่นคือวิธีการทำงานใน Mathematica ไม่จำเป็นต้องใช้รหัสเพิ่มเติมในการทำเช่นนี้ หากคุณต้องการปฏิบัติการได้ Mathematica ไม่ใช่เครื่องมือ
Verbeia

ไฟล์ที่ต่อกันนี้มีชื่อเป็นอินพุตเป็นอาร์กิวเมนต์บรรทัดคำสั่งตามที่ต้องการหรือไม่
msh210

args ของบรรทัดคำสั่งไม่มีอยู่ใน Mathematica มัน conkittenates ฟังก์ชั่นการป้อนข้อมูล นอกจากนี้คุณไม่จำเป็นต้องกำหนดให้กับตัวแปร
CalculatorFeline

2

C #, 230 226 ไบต์

namespace System{using Linq;class P{static void Main(string[]a){Console.Write(string.Concat((a.Length>0?string.Concat(a.Select(f=>IO.File.ReadAllText(f))):Console.In.ReadToEnd()).Select(c=>c>'@'&&c<'['?char.ToLower(c):c)));}}}

Ungolfed:

namespace System
{
    using Linq;
    class P
    {
        static void Main(string[] a)
        {
            Console.Write(                                                  // Print...
                string.Concat(                                                  // ...all chars combined to a string...
                    (a.Length > 0 ?                                             // ...commandline arguments?...
                        string.Concat(a.Select(f => IO.File.ReadAllText(f))) :  // ...then all files as single string...
                        Console.In.ReadToEnd()                                  // ...else STDIN input
                    ).Select(c => c > '@' && c < '[' ? char.ToLower(c) : c)     // ...Lowercase only A..Z
                )
            );  
        }
    }
}

2

Haskell, 133

import System.Environment
main=getArgs>>=mapM_(>>=putStr.map l).f
f[]=[getContents]
f n=map readFile n
l x=[x..]!!sum[32|x>'@',x<'[']

การประมวลผล args แบบแมวนั้นมาจากบทช่วยสอนนี้จากนั้นจัดเรียงใหม่เพื่อโกนอักขระ

อธิบายlฟังก์ชั่นเพื่อพิมพ์เล็กอักขระหนึ่งตัว:

  • sum[32|condition]if condition then 32 else 0เป็นรูปแบบที่สั้นลง
  • [x..]!!countคือiterate succ x !! countถูกtoEnum $ fromEnum x + countและสั้นกว่าการนำเข้าและการใช้Data.Char.toLowerมีเงื่อนไขเพื่อ จำกัด มัน ASCII
  • '@'และ'['จะมีตัวละครทันทีก่อนAและต่อไปนี้Zเพื่อที่ฉันสามารถใช้แทน<<=

ขอบคุณ Anders Kaseorg สำหรับการช่วยเหลือsum[...|...]และ[x..]!!ลูกเล่น


1
l x=[x..]!!sum[32|x>'@',x<'[']
Anders Kaseorg

1

C #, 342 ไบต์

  • ใช้รายการไฟล์จากอาร์กิวเมนต์ที่ส่งผ่าน
  • อ่านอักขระทุกตัวในทุกไฟล์มากกว่าแปลงเป็นตัวพิมพ์เล็กหากตัวอักษรในช่วง A..Z มากกว่าส่งไปยัง STDOUT
  • หากไม่มีรายการไฟล์ใด ๆ นอกจากอ่าน STDIN ให้อ่านอักขระทุกตัวแปลงเป็นตัวพิมพ์เล็กหากอักขระในช่วง A..Z มากกว่าส่งไปยัง STDOUT
namespace System{
using IO;
using Linq;
class P{
static void Main(string[]a){
Action<char>e=C=>{var c=char.ToLower(C);Console.Out.Write(c>='a'&&c<='z'?c:C);};
if(a.Length>0)a.ToList().ForEach(f=>File.ReadAllText(f).ToCharArray().ToList().ForEach(e));
else 
while(true) Console.In.ReadLine().ToCharArray().ToList().ForEach(e);
}
}
}

C #, 319 ไบต์

ซับเดียวเหมือนด้านบน:

namespace System{using IO;using Linq;class P{static void Main(string[]a){Action<char>e=C=>{var c=char.ToLower(C);Console.Out.Write(c>='a'&&c<='z'?c:C);};if(a.Length>0)a.ToList().ForEach(f=>File.ReadAllText(f).ToCharArray().ToList().ForEach(e));else while(true)Console.In.ReadLine().ToCharArray().ToList().ForEach(e);}}}

1

SILOS 179 ตัวละคร

loadLine :
a = 256
x = get a
lbla
X = x
B = x
C = 91
B - 64
if B c
printChar x
GOTO x
lblc
C - x
if C D
printChar x
GOTO x
lblD
x + 32
printChar x
lblx
a + 1
x = get a
if x a
lblb

รู้สึกอิสระที่จะลองรหัสนี้ออนไลน์!


เป็นหลักมันแปลเป็นนี้ใน pusedocode

String input = input();
for(char c in input)
if(c is uppercase) print c + 32/*lowercase c*/else print c

0

C, 91 ไบต์

#include <stdio.h>
main(){int c;while(EOF!=(c=getc(stdin))){c=tolower(c);putc(c,stdout);}}

C, 98 ไบต์

#include <stdio.h>
main(){int c;while(EOF!=(c=getc(stdin))){if(c>64&&c<91)c+=32;putc(c,stdout);}}

แม้ว่าความสามารถในการอ่านที่มีความสำคัญมากกว่าไบต์จะนับตรรกะเดียวกันที่เขียนไว้ด้านล่าง:

#include <stdio.h>
main()
{
int c;
        while (EOF != (c = getc(stdin))) {
                if ((c >= 'A') && ((c <= 'Z')))
                        c = (c - 'A') + 'a';
                putc(c,stdout);
        }
}

กรณีนี้ล้มเหลวในการทดสอบครั้งแรก
TheNumberOne

สิ่งนี้ไม่เป็นไปตามข้อกำหนด มันควรทำตัวเหมือนแมวในแง่ที่ว่าคุณใช้ชื่อไฟล์เป็นอาร์กิวเมนต์และถ้าไม่มีการกำหนดชื่อไฟล์ให้อ่านจาก stdin คุณอ่านจาก stdin เท่านั้น
algmyr

0

sed, 14 ไบต์

s/[A-Z]/\L\0/g

env -i sed -f kitten.sedทำงานด้วย


1
เนื่องจากนี่เป็นเพียงวิธีแฟนซีในการพูดLANG=C sed -f kitten.sedฉันไม่แน่ใจว่าฉันควรใช้บทลงโทษกับบัญชีนั้นหรือไม่ คำถามนี้ไม่ได้ระบุวิธีนับการโทรของโปรแกรมและดูเหมือนจะไม่ได้รับการแก้ไขในเมตา
Ángel

ไฟล์ที่ต่อกันนี้มีชื่อเป็นอินพุตเป็นอาร์กิวเมนต์บรรทัดคำสั่งตามที่ต้องการหรือไม่
msh210

@ msh210 ใช่แน่นอน
Ángel

1
@ Ángel s/.*/\L&/สำหรับโซลูชันเก้าไบต์
someonewithpc

ขอบคุณ @someonewithpc ทั้งสองs/.*/\L&/และs/./\L&/gเป็นโซลูชั่นขนาด 9 ไบต์!
Ángel

0

Java, 198 ไบต์

b->B->{B="";for(java.io.File c:b)B+=new java.util.Scanner(c).useDelimiter("\\Z").next();for(int c=0;c++<B.length;)if(B.charAt(c)>64&B.charAt(c)<91)B=B.replace(B.charAt(c),B.charAt(c)|32);return B;};

คุณถูกบังคับให้ใช้แลมบ์ดาข้างต้นกับไฟล์ดังนั้นไม่จำเป็นต้องป้อนข้อมูลจาก STDIN! Function<File[], UnaryOperator<String>>นอกจากนี้ก็เป็น foo.apply(anArrayOfFiles).apply(anything)โดยจะใช้เช่น

ในฐานะที่เป็นสิ่งที่สมเหตุสมผลสำหรับผู้ที่เพิ่งเริ่มใช้ Java มันใช้เวลา 223 ไบต์:

String A(java.io.File[]b){String B="";for(java.io.File c:b)B+=new java.util.Scanner(c).useDelimiter("\\Z").next();for(int c=0;c++<B.length;)if(B.charAt(c)>64&B.charAt(c)<91)B=B.replace(B.charAt(c),B.charAt(c)|32);return B;}

ในฐานะที่เป็นสิ่งที่รวบรวมมันจะใช้เวลา 232 ไบต์:

class a{String A(java.io.File[]b){String B="";for(java.io.File c:b)B+=new java.util.Scanner(c).useDelimiter("\\Z").next();for(int c=0;c++<B.length;)if(B.charAt(c)>64&B.charAt(c)<91)B=B.replace(B.charAt(c),B.charAt(c)|32);return B;}}
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.