Var annat ord i en text fil är uppercase och lowercase

Permalänk
Medlem

Var annat ord i en text fil är uppercase och lowercase

Titeln säger nästan allting, jag undrar hur man gör var annat ord Uppercase och var annat är Lowercase t ex JaG hEtEr nÅgOnTiNg.

(har kikat på http://www.dotnetperls.com/toupper och http://www.dotnetperls.com/tolower men förstår inte hur jag ska kunna göra var annat ord.

Permalänk
Medlem

I texten skriver du vart annat ord, men i exemplet är det vartannat tecken. Vilket gäller?

Visa signatur

Rigg: Intel Core i7-8700K @ 3,7 GHz, 32GB RAM (3200 MHz), ASUS TUF RTX 3080, Corsair TX850M
Tillbehör: Iiyama ProLite X4372UHSU (43", 4K), Razer Naga Hex MOBA, Func KB-460 (Cherry MX Red)
NAS: Synology Diskstation 413j + 4 * 3TB WD RED

Permalänk
Medlem
Skrivet av Thursday:

I texten skriver du vart annat ord, men i exemplet är det vartannat tecken. Vilket gäller?

De är vart annat tecken som gäller (ber om ursäkt, tänkte lite fel, hade skrivit varannat ord)

Permalänk
Medlem

Typ såhär:

string test = "Testar att göra vartannat ord versalt och varannat gement"; string[] parts = test.Split(' '); int switcher = 0; string newstring = ""; foreach (string bit in parts) { if (switcher == 0) { newstring += bit.ToUpper() + " "; switcher = 1; } else { newstring += bit.ToLower() + " "; switcher = 0; } }

Visa signatur

Rigg: Intel Core i7-8700K @ 3,7 GHz, 32GB RAM (3200 MHz), ASUS TUF RTX 3080, Corsair TX850M
Tillbehör: Iiyama ProLite X4372UHSU (43", 4K), Razer Naga Hex MOBA, Func KB-460 (Cherry MX Red)
NAS: Synology Diskstation 413j + 4 * 3TB WD RED

Permalänk
Medlem

Det finns garanterat snyggare och bättre sätt att göra det på.

Visa signatur

Rigg: Intel Core i7-8700K @ 3,7 GHz, 32GB RAM (3200 MHz), ASUS TUF RTX 3080, Corsair TX850M
Tillbehör: Iiyama ProLite X4372UHSU (43", 4K), Razer Naga Hex MOBA, Func KB-460 (Cherry MX Red)
NAS: Synology Diskstation 413j + 4 * 3TB WD RED

Permalänk
Medlem
Skrivet av Sveyh:

De är vart annat tecken som gäller (ber om ursäkt, tänkte lite fel, hade skrivit varannat ord)

Mjaha, ja, det är väl lite samma princip, men att du pekar på individuella chars i strängen.

Visa signatur

Rigg: Intel Core i7-8700K @ 3,7 GHz, 32GB RAM (3200 MHz), ASUS TUF RTX 3080, Corsair TX850M
Tillbehör: Iiyama ProLite X4372UHSU (43", 4K), Razer Naga Hex MOBA, Func KB-460 (Cherry MX Red)
NAS: Synology Diskstation 413j + 4 * 3TB WD RED

Permalänk
Inaktiv

Såhär kan man göra i java om man vill

public class StringTest { public static void main(String[] args) { String test = "Detta är en sträng med en massa tecken"; System.out.println(UpperLowerCase(test)); } public static String UpperLowerCase(String s){ char[] chars = s.toCharArray(); StringBuilder ret = new StringBuilder(); boolean up = false; String singleChar; for (char c : chars){ singleChar = String.valueOf(c); if(up){ singleChar = singleChar.toUpperCase(); } else { singleChar = singleChar.toLowerCase(); } up = !up; ret.append(singleChar); } return ret.toString(); } }

Permalänk

i python 3

string = "hello there" ret = "" for i in range(0,len(string)): if i%2==0: ret+=string[i].upper() else: ret+=string[i].lower() print (ret)

Visa signatur

Stationär: {Fractal Design R2 [Cosair TX 650W | Asus P7P555D EVO [i5 750 @3.6GHz [Corsair H50] | 16GB Corsair @1333MHz | Gigabyte GTX 670]] | Benq g2220HD 22" TFT x3 i nVidia Surround} , HP 2560p: {i7-2620M @ 2.7GHz | 128GB SSD | 1TB HDD}
Ljud: {Yamaha RX-V667 | Front: Heco Celan XT 500 | LAB12 Tapped Horn}
Kamera: {Nikon D90 | Nikkor 18-105 | Nikon SB-800 | Tamron 90 | Tamron 70-300}

Permalänk
Medlem

Scala:

def mess(text: String) = text.zipWithIndex.map { case (ch, i) => if (i % 2 == 0) ch.toLower else ch.toUpper }.mkString

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Medlem
Skrivet av colafrysen:

i python 3

string = "hello there" ret = "" for i in range(0,len(string)): if i%2==0: ret+=string[i].upper() else: ret+=string[i].lower() print (ret)

Tänk på att en sträng-konkatenering kan bli dyr i längden...
https://wiki.python.org/moin/PythonSpeed/PerformanceTips#Stri...
http://www.skymind.com/~ocrow/python_string/

En alternativ python-lösning kan se ut enligt följande:

def eachother(input_string, start_upper=True): upper=start_upper for c in input_string: yield c.upper() if upper else c.lower() upper = not upper if c.isalpha() else upper

används som:

''.join(eachother("testar lite"))

Notera att denna bara flippar case när ett alfabetiskt tecken kommer och ignorerar således siffror och whitespace...

Visa signatur

weeeee

Permalänk
Medlem

Regex:
var s = "helloworld";
var c = s.replace(/./g, function(m, c, o){
return c%2 ? m[0].toUpperCase() : m[0];
})