<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="https://cgd.zum.de/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
		<id>https://cgd.zum.de/index.php?action=history&amp;feed=atom&amp;title=Die_Klassen_Math_und_String</id>
		<title>Die Klassen Math und String - Versionsgeschichte</title>
		<link rel="self" type="application/atom+xml" href="https://cgd.zum.de/index.php?action=history&amp;feed=atom&amp;title=Die_Klassen_Math_und_String"/>
		<link rel="alternate" type="text/html" href="https://cgd.zum.de/index.php?title=Die_Klassen_Math_und_String&amp;action=history"/>
		<updated>2026-05-26T16:21:36Z</updated>
		<subtitle>Versionsgeschichte dieser Seite in ComeniusWiki</subtitle>
		<generator>MediaWiki 1.21.2</generator>

	<entry>
		<id>https://cgd.zum.de/index.php?title=Die_Klassen_Math_und_String&amp;diff=4740&amp;oldid=prev</id>
		<title>B.Schiller: /* Die Klasse String */</title>
		<link rel="alternate" type="text/html" href="https://cgd.zum.de/index.php?title=Die_Klassen_Math_und_String&amp;diff=4740&amp;oldid=prev"/>
				<updated>2016-03-17T08:53:22Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Die Klasse String&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr style='vertical-align: top;'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Version vom 17. März 2016, 08:53 Uhr&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 203:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 203:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Die Klasse ''String''==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Die Klasse ''String''==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Der Datentyp '''String''' ist in Java kein einfacher Datentyp wie etwa ''int'' oder ''double'' oder ''boolean'', sondern eine Klasse. Eine Variable vom Typ String enthält daher nicht den String selbst, sondern sie enthält einen Verweis auf ein Objekt der Klasse String. Eine wichtigsten Konsequenzen aus dieser Tatsache ist, dass Strings nicht mit dem Vergleichsoperator == verglichen werden können, denn der Vergleichsoperator prüft, ob die Verweise gleich sind und nicht, ob die Strings gleich sind, auf die verwiesen wird. Daher stellt die Klasse ''String'' eigens eine Methode ''equals()'' zu Verfügung, die diese Aufgabe erledigt. Daneben gibt es noch viele weitere interessante Methoden zum Umgang mit Zeichenketten.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Der Datentyp '''String''' ist in Java kein einfacher Datentyp wie etwa ''int'' oder ''double'' oder ''boolean'', sondern eine Klasse. Eine Variable vom Typ String enthält daher nicht den String selbst, sondern sie enthält einen Verweis auf ein Objekt der Klasse String. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Genau genommen ist ein String ein Array von Zeichen (Datentyp ''char''). Folgende Darstellungsweisen drücken daher dasselbe aus:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;String s = &amp;quot;Hallo&amp;quot;;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;char[] s = {'H', 'a', 'l', 'l', 'o'};&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Eine wichtigsten Konsequenzen aus dieser Tatsache ist, dass Strings nicht mit dem Vergleichsoperator == verglichen werden können, denn der Vergleichsoperator prüft, ob die Verweise gleich sind und nicht, ob die Strings gleich sind, auf die verwiesen wird. Daher stellt die Klasse ''String'' eigens eine Methode ''equals()'' zu Verfügung, die diese Aufgabe erledigt. Daneben gibt es noch viele weitere interessante Methoden zum Umgang mit Zeichenketten&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;, in denen der Array-Charakter von String-Objekten deutlich wird&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wikis-cgd:diff:version:1.11a:oldid:4739:newid:4740 --&gt;
&lt;/table&gt;</summary>
		<author><name>B.Schiller</name></author>	</entry>

	<entry>
		<id>https://cgd.zum.de/index.php?title=Die_Klassen_Math_und_String&amp;diff=4739&amp;oldid=prev</id>
		<title>B.Schiller: /* Die Klasse String */</title>
		<link rel="alternate" type="text/html" href="https://cgd.zum.de/index.php?title=Die_Klassen_Math_und_String&amp;diff=4739&amp;oldid=prev"/>
				<updated>2016-03-16T08:59:05Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Die Klasse String&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr style='vertical-align: top;'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Version vom 16. März 2016, 08:59 Uhr&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 276:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 276:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//... überprüft, ob s1 und s2 identisch sind&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//... überprüft, ob s1 und s2 identisch sind&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160;  System.out.println(&amp;quot;Methode 4: &amp;quot;+s1.equals(s2));&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160;  System.out.println(&amp;quot;Methode 4: &amp;quot;+s1.equals(s2));&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//... überprüft, ob s1 und &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;s2 &lt;/del&gt;ohne Berücksichtigung von Groß- und Kleinschreibung identisch sind&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//... überprüft, ob s1 und &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;s3 &lt;/ins&gt;ohne Berücksichtigung von Groß- und Kleinschreibung identisch sind&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160;  System.out.println(&amp;quot;Methode 5: &amp;quot;+s1.equalsIgnoreCase(s3));&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160;  System.out.println(&amp;quot;Methode 5: &amp;quot;+s1.equalsIgnoreCase(s3));&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//... gibt aus, an welcher Stelle der Buchstabe &amp;quot;i&amp;quot; in s1 erstmals vorkommt&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//... gibt aus, an welcher Stelle der Buchstabe &amp;quot;i&amp;quot; in s1 erstmals vorkommt&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wikis-cgd:diff:version:1.11a:oldid:4738:newid:4739 --&gt;
&lt;/table&gt;</summary>
		<author><name>B.Schiller</name></author>	</entry>

	<entry>
		<id>https://cgd.zum.de/index.php?title=Die_Klassen_Math_und_String&amp;diff=4738&amp;oldid=prev</id>
		<title>Woerle067: /* Die Klasse String */</title>
		<link rel="alternate" type="text/html" href="https://cgd.zum.de/index.php?title=Die_Klassen_Math_und_String&amp;diff=4738&amp;oldid=prev"/>
				<updated>2016-03-14T08:13:16Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Die Klasse String&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr style='vertical-align: top;'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Version vom 14. März 2016, 08:13 Uhr&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 487:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 487:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;'''Aufgabe 6'''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;'''Aufgabe 6'''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Erstelle eine Methode '''woerterZaehlen()''', die nach Eingabe eines Satzes ausgibt, aus wievielen &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Wörter &lt;/del&gt;der Satz besteht.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Erstelle eine Methode '''woerterZaehlen()''', die nach Eingabe eines Satzes ausgibt, aus wievielen &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Wörtern &lt;/ins&gt;der Satz besteht.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;popup name=&amp;quot;Lösungsvorschlag&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;popup name=&amp;quot;Lösungsvorschlag&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wikis-cgd:diff:version:1.11a:oldid:4737:newid:4738 --&gt;
&lt;/table&gt;</summary>
		<author><name>Woerle067</name></author>	</entry>

	<entry>
		<id>https://cgd.zum.de/index.php?title=Die_Klassen_Math_und_String&amp;diff=4737&amp;oldid=prev</id>
		<title>Woerle067: /* Die Klasse String */</title>
		<link rel="alternate" type="text/html" href="https://cgd.zum.de/index.php?title=Die_Klassen_Math_und_String&amp;diff=4737&amp;oldid=prev"/>
				<updated>2016-03-14T08:12:02Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Die Klasse String&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr style='vertical-align: top;'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Version vom 14. März 2016, 08:12 Uhr&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 335:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 335:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;'''Aufgabe 3'''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;'''Aufgabe 3'''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Carlchen Crypto ist sauer. Die NSA liest trotz seiner genialen Verschlüsselung immer noch seine mails. Nun hat er eine neue Idee: Er nimmt von einer Zeichenkette immer jeden zweiten Buchstaben und gibt ihn aus. Anschließend hängt er ausgehend vom zweiten Buchstaben wiederum jeden zweiten Buchstaben an. Beispiel: Aus &amp;quot;Deggendorf&amp;quot; wird (nach Umwandlung in Kleinbuchstaben) &amp;quot;dgedregnof&amp;quot;. Erstelle eine Methode '''crypto2()''', die nach Eingabe einer Zeichenkette Carlchens Idee umsetzt.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Carlchen Crypto ist sauer. Die NSA liest trotz seiner genialen Verschlüsselung immer noch seine &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;''&lt;/ins&gt;mails&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;''&lt;/ins&gt;. Nun hat er eine neue Idee: Er nimmt von einer Zeichenkette immer jeden zweiten Buchstaben und gibt ihn aus. Anschließend hängt er ausgehend vom zweiten Buchstaben wiederum jeden zweiten Buchstaben an. Beispiel: Aus &amp;quot;Deggendorf&amp;quot; wird (nach Umwandlung in Kleinbuchstaben) &amp;quot;dgedregnof&amp;quot;. Erstelle eine Methode '''crypto2()''', die nach Eingabe einer Zeichenkette Carlchens Idee umsetzt.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;'''Zusatzaufgabe''': Erstelle eine Methode '''crypto2Decode()''', die nach eingabe eines mit '''crypto2()''' verschlüsselten Wortes dieses wieder dekodiert. Achtung: Es ist eine Fallunterscheidung hinsichtlich der Länge des Wortes (gerade oder ungerade) notwendig.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;'''Zusatzaufgabe''': Erstelle eine Methode '''crypto2Decode()''', die nach eingabe eines mit '''crypto2()''' verschlüsselten Wortes dieses wieder dekodiert. Achtung: Es ist eine Fallunterscheidung hinsichtlich der Länge des Wortes (gerade oder ungerade) notwendig.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 409:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 409:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;'''Aufgabe 5'''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;'''Aufgabe 5'''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Carlchen hat jetzt &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;engültig &lt;/del&gt;die Nase voll von den Schnüfflern der NSA. Er wandelt nun seine Texte in eine Kette von Binärzahlen ohne Punkt und Komma um. Daran soll sich die NSA die Zähne ausbeißen. Erstelle eine Methode '''crypto3()''', die mit Hilfe der Methode '''Integer.toBinaryString(int i)''' (Hinweis: Auch '''char''' wird hier wie '''int''' behandelt.) ein Zeichen nach dem anderen in eine Binärzahl umwandelt und ausgibt, so dass am Ende eine lange Kette von Nullen und Einsen dasteht. Um Problemen aus dem Weg zu gehen, sollte die Zeichenkette ''txt'' in Kleinbuchstaben umgewandelt werden und anschließend sollten alle Leerzeichen mit '''txt.replaceAll(&amp;quot; &amp;quot;,&amp;quot;&amp;quot;)''' entfernt werden.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Carlchen hat jetzt &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;endgültig &lt;/ins&gt;die Nase voll von den Schnüfflern der NSA. Er wandelt nun seine Texte in eine Kette von Binärzahlen ohne Punkt und Komma um. Daran soll sich die NSA die Zähne ausbeißen. Erstelle eine Methode '''crypto3()''', die mit Hilfe der Methode '''Integer.toBinaryString(int i)''' (Hinweis: Auch '''char''' wird hier wie '''int''' behandelt.) ein Zeichen nach dem anderen in eine Binärzahl umwandelt und ausgibt, so dass am Ende eine lange Kette von Nullen und Einsen dasteht. Um Problemen aus dem Weg zu gehen, sollte die Zeichenkette ''txt'' in Kleinbuchstaben umgewandelt werden und anschließend sollten alle Leerzeichen mit '''txt.replaceAll(&amp;quot; &amp;quot;,&amp;quot;&amp;quot;)''' entfernt werden.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;'''Zusatzaufgabe 1:''' (Knobelaufgabe!): Carlchen will das Ganze natürlich auch wieder dekodieren. Erstelle eine Methode '''crypto3Decode()''', die das bewerkstelligt. Dazu muss man drei Dinge wissen: 1. Jedes Zeichen bzw. jede ASCII-Zahl, die ein Zeichen 'a' bis 'z' bzw. 'A' bis 'Z' ausgibt, kann durch eine 7-stellige Binärzahl dargestellt werden (dezimal 65 bis 122), die wir mit einer der bekannten String-Methoden aus der langen Kette herausschneiden können. 2. Mit '''Integer.parseInt(String c, 2)''' können wir einen Binärzahl-String '''c''' in eine Dezimalzahl umwandeln. 3. Mit '''(char) x''' können wir eine Zahl '''x''' (Datentyp int) in ein Zeichen umwandeln. Besondere Vorsicht ist geboten mit dem Datentyp der Variablen, in denen die Zwischenergebnisse der Umwandlung abgespeichert werden.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;'''Zusatzaufgabe 1:''' (Knobelaufgabe!): Carlchen will das Ganze natürlich auch wieder dekodieren. Erstelle eine Methode '''crypto3Decode()''', die das bewerkstelligt. Dazu muss man drei Dinge wissen: 1. Jedes Zeichen bzw. jede ASCII-Zahl, die ein Zeichen 'a' bis 'z' bzw. 'A' bis 'Z' ausgibt, kann durch eine 7-stellige Binärzahl dargestellt werden (dezimal 65 bis 122), die wir mit einer der bekannten String-Methoden aus der langen Kette herausschneiden können. 2. Mit '''Integer.parseInt(String c, 2)''' können wir einen Binärzahl-String '''c''' in eine Dezimalzahl umwandeln. 3. Mit '''(char) x''' können wir eine Zahl '''x''' (Datentyp int) in ein Zeichen umwandeln. Besondere Vorsicht ist geboten mit dem Datentyp der Variablen, in denen die Zwischenergebnisse der Umwandlung abgespeichert werden.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wikis-cgd:diff:version:1.11a:oldid:4734:newid:4737 --&gt;
&lt;/table&gt;</summary>
		<author><name>Woerle067</name></author>	</entry>

	<entry>
		<id>https://cgd.zum.de/index.php?title=Die_Klassen_Math_und_String&amp;diff=4734&amp;oldid=prev</id>
		<title>B.Schiller: /* Die Klasse String */</title>
		<link rel="alternate" type="text/html" href="https://cgd.zum.de/index.php?title=Die_Klassen_Math_und_String&amp;diff=4734&amp;oldid=prev"/>
				<updated>2016-03-07T08:17:18Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Die Klasse String&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr style='vertical-align: top;'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Version vom 7. März 2016, 08:17 Uhr&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 335:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 335:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;'''Aufgabe 3'''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;'''Aufgabe 3'''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Carlchen Crypto ist sauer. Die NSA liest trotz seiner genialen Verschlüsselung immer noch seine mails. Nun hat er eine neue Idee: Er nimmt von einer Zeichenkette immer jeden zweiten Buchstaben und gibt ihn aus. Anschließend hängt er ausgehend vom zweiten Buchstaben wiederum jeden zweiten Buchstaben an. Beispiel: Aus &amp;quot;Deggendorf&amp;quot; wird (nach Umwandlung in Kleinbuchstaben) &amp;quot;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;dgedrennof&lt;/del&gt;&amp;quot;. Erstelle eine Methode '''crypto2()''', die nach Eingabe einer Zeichenkette Carlchens Idee umsetzt.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Carlchen Crypto ist sauer. Die NSA liest trotz seiner genialen Verschlüsselung immer noch seine mails. Nun hat er eine neue Idee: Er nimmt von einer Zeichenkette immer jeden zweiten Buchstaben und gibt ihn aus. Anschließend hängt er ausgehend vom zweiten Buchstaben wiederum jeden zweiten Buchstaben an. Beispiel: Aus &amp;quot;Deggendorf&amp;quot; wird (nach Umwandlung in Kleinbuchstaben) &amp;quot;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;dgedregnof&lt;/ins&gt;&amp;quot;. Erstelle eine Methode '''crypto2()''', die nach Eingabe einer Zeichenkette Carlchens Idee umsetzt.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;'''Zusatzaufgabe''': Erstelle eine Methode '''crypto2Decode()''', die nach eingabe eines mit '''crypto2()''' verschlüsselten Wortes dieses wieder dekodiert. Achtung: Es ist eine Fallunterscheidung hinsichtlich der Länge des Wortes (gerade oder ungerade) notwendig.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;'''Zusatzaufgabe''': Erstelle eine Methode '''crypto2Decode()''', die nach eingabe eines mit '''crypto2()''' verschlüsselten Wortes dieses wieder dekodiert. Achtung: Es ist eine Fallunterscheidung hinsichtlich der Länge des Wortes (gerade oder ungerade) notwendig.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wikis-cgd:diff:version:1.11a:oldid:4728:newid:4734 --&gt;
&lt;/table&gt;</summary>
		<author><name>B.Schiller</name></author>	</entry>

	<entry>
		<id>https://cgd.zum.de/index.php?title=Die_Klassen_Math_und_String&amp;diff=4728&amp;oldid=prev</id>
		<title>B.Schiller: Die Seite wurde neu angelegt: „Eine der großen Stärken von Java sind vordefinierte Klassen, die in einer Bibliothek bzw. einem ''package'' mitgeliefert werden. Typische Beispiele für solc…“</title>
		<link rel="alternate" type="text/html" href="https://cgd.zum.de/index.php?title=Die_Klassen_Math_und_String&amp;diff=4728&amp;oldid=prev"/>
				<updated>2016-02-28T16:06:23Z</updated>
		
		<summary type="html">&lt;p&gt;Die Seite wurde neu angelegt: „Eine der großen Stärken von Java sind vordefinierte Klassen, die in einer Bibliothek bzw. einem &amp;#039;&amp;#039;package&amp;#039;&amp;#039; mitgeliefert werden. Typische Beispiele für solc…“&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Eine der großen Stärken von Java sind vordefinierte Klassen, die in einer Bibliothek bzw. einem ''package'' mitgeliefert werden. Typische Beispiele für solche vordefinierten Klassen sind die Klassen '''Math''' und '''String''', die beide im ''package'' '''java.lang''' enthalten sind. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Die Klasse ''Math''==&lt;br /&gt;
&lt;br /&gt;
Die Sprache Java selbst sieht nur einfache arithmetische Operationen wie Addition, Subtraktion, Multiplikation etc. vor. Schon bei einfachen mathematischen Formeln müssen wir aber kompliziertere mathematische Funktionen verwenden wie z.B. Quadratwurzel, Sinus oder Cosinus. Die Designer von Java haben sich entschlossen, diese komplexeren mathematischen Funktionen in eine spezielle Klasse namens '''Math''' zu packen. Die Klassen von '''java.lang''' werden immer automatisch vom Java-Compiler verfügbar gemacht, so dass das ''package'' nicht importiert werden muss.&lt;br /&gt;
&lt;br /&gt;
[http://docs.oracle.com/javase/6/docs/api/java/lang/Math.html Dokumentation der Klasse java.lang.Math]&lt;br /&gt;
&lt;br /&gt;
Beispiele für die Verwendung von Methoden der Klasse '''Math''':&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Funktion&lt;br /&gt;
! Methode&lt;br /&gt;
|-&lt;br /&gt;
| Kreiszahl Pi&lt;br /&gt;
| Math.PI&lt;br /&gt;
|-&lt;br /&gt;
| Quadratwurzel von x&lt;br /&gt;
| Math.sqrt(x)&lt;br /&gt;
|-&lt;br /&gt;
| Potenz: x hoch a&lt;br /&gt;
| Math.pow(x,a)&lt;br /&gt;
|-&lt;br /&gt;
| Winkelfunktionen (sin, cos, tan)   &lt;br /&gt;
| Math.sin(x)&lt;br /&gt;
|-&lt;br /&gt;
| Rundung&lt;br /&gt;
| Math.round(x)&lt;br /&gt;
|-&lt;br /&gt;
| Aufrunden&lt;br /&gt;
| Math.ceil(x)&lt;br /&gt;
|-&lt;br /&gt;
| Abrunden&lt;br /&gt;
| Math.floor(y)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Anwendungen'''&lt;br /&gt;
&lt;br /&gt;
Die zwei Methoden enthalten jeweils Anwendungen aus der Klasse ''Math'':&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.util.Scanner;&lt;br /&gt;
&lt;br /&gt;
public class Aufgaben{&lt;br /&gt;
&lt;br /&gt;
Scanner eingabe;&lt;br /&gt;
&lt;br /&gt;
public Aufgaben(){&lt;br /&gt;
   eingabe = new Scanner(System.in);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//Beispiel 1&lt;br /&gt;
public void wurzelBerechnen(){&lt;br /&gt;
   System.out.print (&amp;quot;Geben Sie eine Zahl ein: &amp;quot;);&lt;br /&gt;
   int x = eingabe.nextInt();&lt;br /&gt;
   if(x&amp;lt;0){System.out.println(&amp;quot;Ungültige Eingabe!&amp;quot;); wurzelBerechnen();};&lt;br /&gt;
     //Durch den erneuten Aufruf der Methode wurzelBerechnen() erscheint sofort wieder die Eingabeaufforderung&lt;br /&gt;
   System.out.println(&amp;quot;Die Wurzel von &amp;quot;+x+&amp;quot; ist &amp;quot;+Math.sqrt(x));&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//Beispiel 2&lt;br /&gt;
public void gerundeteWurzel(){&lt;br /&gt;
   System.out.print (&amp;quot;Geben Sie eine Zahl ein: &amp;quot;);&lt;br /&gt;
   int x = eingabe.nextInt();&lt;br /&gt;
   if(x&amp;lt;0){System.out.println(&amp;quot;Ungültige Eingabe!&amp;quot;); gerundeteWurzel();};&lt;br /&gt;
   System.out.println(&amp;quot;Die gerundete Wurzel von &amp;quot;+x+&amp;quot; ist &amp;quot;+Math.round(Math.sqrt(x)));&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die folgenden Methoden können wieder in der Klasse ''Aufgaben'' implementiert werden und deren Scanner-Objekt nutzen. (Hinweis: In den Aufgaben werden Bedingungen wiederholt.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:#BEE599; padding:10px; margin-bottom:30px;&amp;quot;&amp;gt;&lt;br /&gt;
'''Aufgabe 1'''&lt;br /&gt;
&lt;br /&gt;
Erstelle eine Methode '''public void pythagoras()''', die nach Eingabe der Seitenlänge der beiden Katheten eines rechtwinkligen Dreiecks die Länge der Hypotenuse berechnet. Bei Eingabe negativer Werte soll ein Hinweis ausgegeben werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;popup name=&amp;quot;Lösungsvorschlag&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public void pythagoras(){&lt;br /&gt;
   &lt;br /&gt;
   System.out.print (&amp;quot;Geben Sie die Länge der ersten Seite ein: &amp;quot;);&lt;br /&gt;
   int a = eingabe.nextInt();&lt;br /&gt;
   System.out.print (&amp;quot;Geben Sie die Länge der zweiten Seite ein: &amp;quot;);&lt;br /&gt;
   int b = eingabe.nextInt();&lt;br /&gt;
   if(a&amp;lt;0|| b&amp;lt;0) {System.out.println(&amp;quot;Negative Eingabe nicht möglich! &amp;quot;); pythagoras () ;}&lt;br /&gt;
   else {System.out.println(&amp;quot;Die Länge der dritten Seite beträgt &amp;quot;+Math.sqrt(Math.pow(a,2)+Math.pow(b,2)));}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Im Rumpf der if-Anweisung ruft sich bei einer falschen Eingabe nach dem entsprechenden Hinweis die Methode selbst auf (''pythagoras()''). Das hat den Vorteil, dass nach dem Fehlerhinweis sofort wieder eine Eingabeaufforderung auf der Konsole angezeigt wird.&amp;lt;br/&amp;gt;&lt;br /&gt;
Man könnte das Ergebnis auch zuerst in eine Variable schreiben lassen und dann ausgeben. Dies empfiehlt sich bei komplexen Berechnungen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
double c = Math.sqrt(Math.pow(a,2)+Math.pow(b,2));&lt;br /&gt;
System.out.println(&amp;quot;Die Länge der dritten Seite beträgt &amp;quot;+c);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Alternative Lösung (spezielle Methode aus dem ''Math-package''):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public void pythagoras (){&lt;br /&gt;
&lt;br /&gt;
System.out.print (&amp;quot;Geben Sie die Länge Kathete a ein: &amp;quot;);&lt;br /&gt;
double a=eingabe.nextDouble();&lt;br /&gt;
System.out.print (&amp;quot;Geben Sie die Länge Kathete b ein: &amp;quot;);&lt;br /&gt;
double b=eingabe.nextDouble();&lt;br /&gt;
if(a&amp;lt;0|| b&amp;lt;0) {System.out.println(&amp;quot;Negative Eingabe nicht möglich! &amp;quot;); pythagoras () ;}&lt;br /&gt;
else{System.out.println(&amp;quot;Die Länge der Hypothenuse des Dreiecks ist &amp;quot;+Math.hypot(a,b)+&amp;quot;.&amp;quot;);};}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;/popup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Aufgabe 2'''&lt;br /&gt;
&lt;br /&gt;
Erstelle eine Methode '''public void kugel()''', die nach Eingabe des Radius das Volumen und die Oberfläche der entsprechenden Kugel berechnet. (Achtung: Bei der Berechnung des Volumens lauert eine böse &amp;quot;Datentypfalle&amp;quot; !!)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;popup name=&amp;quot;Lösungsvorschlag&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public void kugel(){&lt;br /&gt;
   &lt;br /&gt;
   System.out.print (&amp;quot;Geben Sie den Radius ein: &amp;quot;);&lt;br /&gt;
   double r=eingabe.nextDouble();&lt;br /&gt;
   System.out.println(&amp;quot;Das Volumen der Kugel beträgt &amp;quot;+(double)4/3*Math.pow(r,3)*Math.PI);&lt;br /&gt;
   System.out.println(&amp;quot;Der Flächeninhalt der Kugeloberfläche beträgt &amp;quot;+4*Math.pow(r,2)*Math.PI); &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Erläuterung''': Wird bei der Berechnung von 4/3 keine Datentypumwandlung vorgenommen, wird das Ergebnis immer auf den int-Wert 1 abgerundet!!&lt;br /&gt;
&amp;lt;/popup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Aufgabe 3'''&lt;br /&gt;
&lt;br /&gt;
Erstelle eine Methode '''public void zylinder()''', die nach Eingabe des Radius und der Höhe das Volumen und die Oberfläche des entsprechenden Zylinders berechnet.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;popup name=&amp;quot;Lösungsvorschlag&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public void zylinder(){&lt;br /&gt;
&lt;br /&gt;
System.out.print(&amp;quot;Geben sie den Radius der Kreisfläche ein: &amp;quot;);&lt;br /&gt;
double r= eingabe.nextInt();&lt;br /&gt;
System.out.print(&amp;quot;Geben sie die Höhe des Zylinders ein: &amp;quot;);&lt;br /&gt;
double h=eingabe.nextInt();&lt;br /&gt;
double v=Math.floor(Math.pow(r,2)*Math.PI*h);&lt;br /&gt;
double o=Math.floor(2*Math.pow(r,2)*Math.PI+2*r*Math.PI*h);&lt;br /&gt;
System.out.println(&amp;quot;Die Oberfläche des Zylinders beträgt &amp;quot;+o+&amp;quot; Das Volumen beträgt &amp;quot;+v+&amp;quot;&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;/popup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Aufgabe 4'''&lt;br /&gt;
&lt;br /&gt;
Erstelle eine Methode '''public void prismaberechnung()''', die nach Eingabe der Seitenlänge des gleichseitigen Grundflächendreiecks und der Höhe des Prismas das Volumen und die Oberfläche berechnet.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;popup name=&amp;quot;Lösungsvorschlag&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public void prismaberechnung(){&lt;br /&gt;
&lt;br /&gt;
System.out.print(&amp;quot;Geben Sie die Seitenlänge des Grundflächendreiecks ein: &amp;quot;);&lt;br /&gt;
double s = eingabe.nextInt();&lt;br /&gt;
System.out.print(&amp;quot;Geben Sie die Höhe des Prismas ein: &amp;quot;);&lt;br /&gt;
double h=eingabe.nextInt();&lt;br /&gt;
double v=(s/2*Math.sqrt(3)*s)/2*h;&lt;br /&gt;
double o=(s/2*Math.sqrt(3)*s)/2+3*s*h;&lt;br /&gt;
System.out.println(&amp;quot;Das Volumen des Prismas beträgt &amp;quot;+v+&amp;quot; und die Oberfläche &amp;quot;+o+&amp;quot;&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;/popup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Aufgabe 5'''&lt;br /&gt;
&lt;br /&gt;
Schreibe eine Methode '''public void quadratzahlTest()''', die überprüft, ob eine eingegebene Zahl eine Quadratzahl ist oder nicht. Das eigentliche Problem besteht darin, eine geeignete Bedingung zu formulieren.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;popup name=&amp;quot;Lösungsvorschlag&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Grundidee:''' Wenn das Ergebnis der Wurzel gleich dem Ergebnis für den gerundeten Wurzelwert ist, dann handelt es sich um eine Quadratzahl. Denn nur in diesem Fall erhalten wir für die Wurzel eine ganze Zahl.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public void quadratzahlTest(){&lt;br /&gt;
   &lt;br /&gt;
   System.out.print (&amp;quot;Geben Sie die zu überprüfende Zahl ein: &amp;quot;);&lt;br /&gt;
   int x = eingabe.nextInt();&lt;br /&gt;
   if(Math.sqrt(x)==Math.floor(Math.sqrt(x))){System.out.println(x+&amp;quot; ist eine Quadratzahl.&amp;quot;);}&lt;br /&gt;
   else{System.out.println(x+&amp;quot; ist keine Quadratzahl.&amp;quot;);}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;/popup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Die Klasse ''String''==&lt;br /&gt;
&lt;br /&gt;
Der Datentyp '''String''' ist in Java kein einfacher Datentyp wie etwa ''int'' oder ''double'' oder ''boolean'', sondern eine Klasse. Eine Variable vom Typ String enthält daher nicht den String selbst, sondern sie enthält einen Verweis auf ein Objekt der Klasse String. Eine wichtigsten Konsequenzen aus dieser Tatsache ist, dass Strings nicht mit dem Vergleichsoperator == verglichen werden können, denn der Vergleichsoperator prüft, ob die Verweise gleich sind und nicht, ob die Strings gleich sind, auf die verwiesen wird. Daher stellt die Klasse ''String'' eigens eine Methode ''equals()'' zu Verfügung, die diese Aufgabe erledigt. Daneben gibt es noch viele weitere interessante Methoden zum Umgang mit Zeichenketten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://docs.oracle.com/javase/6/docs/api/java/lang/String.html Dokumentation der Klasse java.lang.String]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:#BEE599; padding:10px; margin-bottom:30px;&amp;quot;&amp;gt;&lt;br /&gt;
'''Aufgabe 1'''&lt;br /&gt;
&lt;br /&gt;
Erstelle eine Klasse '''StringMethoden''' und kopiere folgenden Code in den Editor:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public class StringMethoden {&lt;br /&gt;
&lt;br /&gt;
public void stringMethodenTesten(){&lt;br /&gt;
&lt;br /&gt;
String s1 = &amp;quot;Nikolausi&amp;quot;;&lt;br /&gt;
String s2 = &amp;quot;Mikolausi&amp;quot;;&lt;br /&gt;
String s3 = &amp;quot;NIKOLAUSI&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
//...&lt;br /&gt;
System.out.println(&amp;quot;Methode 1: &amp;quot;+s1);&lt;br /&gt;
//...&lt;br /&gt;
System.out.println(&amp;quot;Methode 2: &amp;quot;+s1.charAt(5));&lt;br /&gt;
//...&lt;br /&gt;
System.out.println(&amp;quot;Methode 3: &amp;quot;+s1.endsWith(&amp;quot;ausi&amp;quot;));&lt;br /&gt;
//...&lt;br /&gt;
System.out.println(&amp;quot;Methode 4: &amp;quot;+s1.equals(s2));&lt;br /&gt;
//...&lt;br /&gt;
System.out.println(&amp;quot;Methode 5: &amp;quot;+s1.equalsIgnoreCase(s3));&lt;br /&gt;
//...&lt;br /&gt;
System.out.println(&amp;quot;Methode 6: &amp;quot;+s1.indexOf(&amp;quot;i&amp;quot;));&lt;br /&gt;
//...&lt;br /&gt;
System.out.println(&amp;quot;Methode 7: &amp;quot;+s1.indexOf(&amp;quot;aus&amp;quot;));&lt;br /&gt;
//...&lt;br /&gt;
System.out.println(&amp;quot;Methode 8: &amp;quot;+s1.length());&lt;br /&gt;
//...&lt;br /&gt;
System.out.println(&amp;quot;Methode 9: &amp;quot;+s1.replace('l','m'));&lt;br /&gt;
//...&lt;br /&gt;
System.out.println(&amp;quot;Methode 10: &amp;quot;+s1.startsWith(&amp;quot;Niko&amp;quot;));&lt;br /&gt;
//...&lt;br /&gt;
System.out.println(&amp;quot;Methode 11: &amp;quot;+s1.substring(4));&lt;br /&gt;
//&lt;br /&gt;
System.out.println(&amp;quot;Methode 12: &amp;quot;+s1.substring(4,8));&lt;br /&gt;
//&lt;br /&gt;
System.out.println(&amp;quot;Methode 13: &amp;quot;+s1.toLowerCase());&lt;br /&gt;
//&lt;br /&gt;
System.out.println(&amp;quot;Methode 14: &amp;quot;+s1.toUpperCase());&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kompiliere das Programm und lasse die Ergebnisse auf der Konsole ausgeben. Ergänze nun das Programm mit einem Kommentar (// ...), der genau angibt, was jede dieser String-Methoden macht.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;popup name=&amp;quot;Lösungsvorschlag&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public class StringMethoden {&lt;br /&gt;
&lt;br /&gt;
public void stringMethodenTesten(){&lt;br /&gt;
&lt;br /&gt;
String s1 = &amp;quot;Nikolausi&amp;quot;;&lt;br /&gt;
String s2 = &amp;quot;Mikolausi&amp;quot;;&lt;br /&gt;
String s3 = &amp;quot;NIKOLAUSI&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
// Der folgende Methodenaufruf ...&lt;br /&gt;
//... gibt die Zeichenkette s1 auf der Konsole aus&lt;br /&gt;
     System.out.println(&amp;quot;Methode 1: &amp;quot;+s1);&lt;br /&gt;
//... gibt den 6.Buchstaben der Zeichenkette s1 aus&lt;br /&gt;
     System.out.println(&amp;quot;Methode 2: &amp;quot;+s1.charAt(5));&lt;br /&gt;
//... überprüft, ob die Zeichenkette s1 auf &amp;quot;ausi&amp;quot; endet.&lt;br /&gt;
     System.out.println(&amp;quot;Methode 3: &amp;quot;+s1.endsWith(&amp;quot;ausi&amp;quot;));&lt;br /&gt;
//... überprüft, ob s1 und s2 identisch sind&lt;br /&gt;
     System.out.println(&amp;quot;Methode 4: &amp;quot;+s1.equals(s2));&lt;br /&gt;
//... überprüft, ob s1 und s2 ohne Berücksichtigung von Groß- und Kleinschreibung identisch sind&lt;br /&gt;
     System.out.println(&amp;quot;Methode 5: &amp;quot;+s1.equalsIgnoreCase(s3));&lt;br /&gt;
//... gibt aus, an welcher Stelle der Buchstabe &amp;quot;i&amp;quot; in s1 erstmals vorkommt&lt;br /&gt;
     System.out.println(&amp;quot;Methode 6: &amp;quot;+s1.indexOf(&amp;quot;i&amp;quot;));&lt;br /&gt;
//... gibt an, an welcher Stelle der Teilstring &amp;quot;aus&amp;quot; in s1 erstmals vorkommt&lt;br /&gt;
     System.out.println(&amp;quot;Methode 7: &amp;quot;+s1.indexOf(&amp;quot;aus&amp;quot;));&lt;br /&gt;
//... gibt die Länge von s1 (= Anzahl der Zeichen) an&lt;br /&gt;
     System.out.println(&amp;quot;Methode 8: &amp;quot;+s1.length());&lt;br /&gt;
//... ersetzt alle Vorkommnisse von &amp;quot;l&amp;quot; durch &amp;quot;m&amp;quot;&lt;br /&gt;
     System.out.println(&amp;quot;Methode 9: &amp;quot;+s1.replace('l','m'));&lt;br /&gt;
//... überprüft, ob s1 mit dem Teilstring &amp;quot;Niko&amp;quot; beginnt&lt;br /&gt;
     System.out.println(&amp;quot;Methode 10: &amp;quot;+s1.startsWith(&amp;quot;Niko&amp;quot;));&lt;br /&gt;
//... gibt den Teilstring von s1 aus, der mit dem 5.Buchstaben beginnt&lt;br /&gt;
     System.out.println(&amp;quot;Methode 11: &amp;quot;+s1.substring(4));&lt;br /&gt;
//... gibt den Teilstring von s1 aus, der mit dem 5. Buchstaben beginnt und mit dem 8. endet (Index[8], d.h. der 9. Buchstabe ist der erste, der nicht mehr enthalten ist)&lt;br /&gt;
     System.out.println(&amp;quot;Methode 12: &amp;quot;+s1.substring(4,8));&lt;br /&gt;
//... gibt s1 in Kleinbuchstaben aus&lt;br /&gt;
     System.out.println(&amp;quot;Methode 13: &amp;quot;+s1.toLowerCase());&lt;br /&gt;
//... gibt s1 in Großbuchstaben aus&lt;br /&gt;
     System.out.println(&amp;quot;Methode 14: &amp;quot;+s1.toUpperCase());&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;/popup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Aufgabe 2'''&lt;br /&gt;
&lt;br /&gt;
Ergänze die Klasse '''StringMethoden''' um eine Methode, die für eine eingegebene Zeichenkette zählt und ausgibt, wie oft ein bestimmter Buchstabe vorkommt. Der Einfachheit halber soll die eingegebene Zeichenkette in Kleinbuchstaben umgewandelt werden. Hilfreich ist hier die Tatsache, dass eine for-Schleife auch mit Zeichen (z.B. 'a' bis 'z') funktioniert. Der Typ der Zählvariable ist natürlich dann '''''char'''''. Hinweis: Eine innere Schleife läuft jeweils durch die ganze Zeichenkette, um den gesuchten Buchstaben zu finden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;popup name=&amp;quot;Lösungsvorschlag&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public void buchstabenZaehlen(String txt){&lt;br /&gt;
&lt;br /&gt;
//Zeichenkette in Kleinbuchstaben umwandeln&lt;br /&gt;
   txt=txt.toLowerCase();&lt;br /&gt;
&lt;br /&gt;
//äußere Schleife läuft von a bis z&lt;br /&gt;
   for (char c = 'a'; c &amp;lt;= 'z'; c++){&lt;br /&gt;
&lt;br /&gt;
      //Zählvariable, um festzuhalten wie oft der jeweilige Buchstabe auftritt&lt;br /&gt;
      int j=0;&lt;br /&gt;
&lt;br /&gt;
      //innere Schleife läuft jeweils vom ersten bis zum letzten Buchstaben und zählt die Vorkommen des jeweiligen Buchstaben&lt;br /&gt;
      for(int i=0;i&amp;lt;=txt.length()-1;i++){&lt;br /&gt;
          if(c==txt.charAt(i)){j++;};}&lt;br /&gt;
      System.out.println(&amp;quot;Der Buchstabe &amp;quot;+c+&amp;quot; kommt &amp;quot;+j+&amp;quot; mal vor.&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Programm kann zum Entschlüsseln von einfach verschlüsselten Texten (z.B. Caesarverschiebung) verwendet werden, indem man die [http://de.wikipedia.org/wiki/Buchstabenhäufigkeit Buchstabenhäufigkeit] im verschlüsselten Text mit der Verteilung z.B. im Deutschen vergleicht. Je länger der Ausgangstext, desto höher die Trefferquote.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/popup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Aufgabe 3'''&lt;br /&gt;
&lt;br /&gt;
Carlchen Crypto ist sauer. Die NSA liest trotz seiner genialen Verschlüsselung immer noch seine mails. Nun hat er eine neue Idee: Er nimmt von einer Zeichenkette immer jeden zweiten Buchstaben und gibt ihn aus. Anschließend hängt er ausgehend vom zweiten Buchstaben wiederum jeden zweiten Buchstaben an. Beispiel: Aus &amp;quot;Deggendorf&amp;quot; wird (nach Umwandlung in Kleinbuchstaben) &amp;quot;dgedrennof&amp;quot;. Erstelle eine Methode '''crypto2()''', die nach Eingabe einer Zeichenkette Carlchens Idee umsetzt.&lt;br /&gt;
&lt;br /&gt;
'''Zusatzaufgabe''': Erstelle eine Methode '''crypto2Decode()''', die nach eingabe eines mit '''crypto2()''' verschlüsselten Wortes dieses wieder dekodiert. Achtung: Es ist eine Fallunterscheidung hinsichtlich der Länge des Wortes (gerade oder ungerade) notwendig.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;popup name=&amp;quot;Lösungsvorschlag&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public void crypto2(String txt){&lt;br /&gt;
&lt;br /&gt;
//Umwandlung in Kleinbuchstaben&lt;br /&gt;
txt=txt.toLowerCase();&lt;br /&gt;
&lt;br /&gt;
//Erster Teil der Zeichenkette: Ausgabe jedes zweiten Buchstaben ausgehend vom ersten Buchstaben&lt;br /&gt;
for(int i=0;i&amp;lt;txt.length();i+=2){&lt;br /&gt;
System.out.print(txt.charAt(i));}&lt;br /&gt;
&lt;br /&gt;
//Zweiter Teil der Zeichenkette: Ausgabe jedes zweiten Buchstaben ausgehend vom zweiten Buchstaben&lt;br /&gt;
for(int i=1;i&amp;lt;txt.length();i+=2){&lt;br /&gt;
System.out.print(txt.charAt(i));}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Zusatzaufgabe'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public void crypto2Decode(String txt){&lt;br /&gt;
&lt;br /&gt;
//Überprüfen, ob Zeichenzahl gerade&lt;br /&gt;
if(txt.length()%2==0){&lt;br /&gt;
//In der Schleife wird abwechselnd ein Zeichen des vordere und des hinteren Teils (ab txt.length()/2) der Zeichenkette ausgegeben&lt;br /&gt;
for(int i=0; i&amp;lt;txt.length()/2;i++){&lt;br /&gt;
System.out.print(txt.charAt(i));System.out.print(txt.charAt(txt.length()/2+i));}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//Zeichenzahl ungerade&lt;br /&gt;
else{&lt;br /&gt;
//In der Schleife für die ungerade Länge müssen die die Schleifenbedingungen angepasst werden&lt;br /&gt;
for(int i=0; i&amp;lt;=txt.length()/2;i++){&lt;br /&gt;
System.out.print(txt.charAt(i));if(txt.length()/2+1+i&amp;lt;txt.length()){System.out.print(txt.charAt(txt.length()/2+1+i));};}&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die if-Bedingung im Schleifenrumpf bei den ungeraden Zeichenketten vermeidet eine ''outOfBounds-Exception'', indem der Versuch vermieden wird, ein Zeichen auszugeben, das sich außerhalb der Länge der Zeichenkette befindet.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/popup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Aufgabe 4'''&lt;br /&gt;
&lt;br /&gt;
Das bekannte Wortspiel bzw. Lied &amp;quot;''Drei Chinesen mit dem Kontrabass''&amp;quot; soll als Methode '''dreiChinesen()''' umgesetzt werden, wobei der gewünschte Vokal den Eingabewert darstellt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;popup name=&amp;quot;Lösungsvorschlag&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public void dreiChinesen(char voc){&lt;br /&gt;
&lt;br /&gt;
String txt=&amp;quot;Drei Chinesen mit dem Kontrabass&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
for(int i=0;i&amp;lt;txt.length();i++){&lt;br /&gt;
//Ermitteln der Vokale in der Zeichenkette&lt;br /&gt;
if(txt.charAt(i)=='a'||txt.charAt(i)=='e'||txt.charAt(i)=='i'||txt.charAt(i)=='o'||txt.charAt(i)=='u'){&lt;br /&gt;
//Ersetzen des Vokals durch den eingegebenen Vokal&lt;br /&gt;
 System.out.print(voc);}else&lt;br /&gt;
//Ausgabe der anderen Zeichen ohne Veränderung&lt;br /&gt;
{System.out.print(txt.charAt(i));};&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;/popup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Aufgabe 5'''&lt;br /&gt;
&lt;br /&gt;
Carlchen hat jetzt engültig die Nase voll von den Schnüfflern der NSA. Er wandelt nun seine Texte in eine Kette von Binärzahlen ohne Punkt und Komma um. Daran soll sich die NSA die Zähne ausbeißen. Erstelle eine Methode '''crypto3()''', die mit Hilfe der Methode '''Integer.toBinaryString(int i)''' (Hinweis: Auch '''char''' wird hier wie '''int''' behandelt.) ein Zeichen nach dem anderen in eine Binärzahl umwandelt und ausgibt, so dass am Ende eine lange Kette von Nullen und Einsen dasteht. Um Problemen aus dem Weg zu gehen, sollte die Zeichenkette ''txt'' in Kleinbuchstaben umgewandelt werden und anschließend sollten alle Leerzeichen mit '''txt.replaceAll(&amp;quot; &amp;quot;,&amp;quot;&amp;quot;)''' entfernt werden.&lt;br /&gt;
&lt;br /&gt;
'''Zusatzaufgabe 1:''' (Knobelaufgabe!): Carlchen will das Ganze natürlich auch wieder dekodieren. Erstelle eine Methode '''crypto3Decode()''', die das bewerkstelligt. Dazu muss man drei Dinge wissen: 1. Jedes Zeichen bzw. jede ASCII-Zahl, die ein Zeichen 'a' bis 'z' bzw. 'A' bis 'Z' ausgibt, kann durch eine 7-stellige Binärzahl dargestellt werden (dezimal 65 bis 122), die wir mit einer der bekannten String-Methoden aus der langen Kette herausschneiden können. 2. Mit '''Integer.parseInt(String c, 2)''' können wir einen Binärzahl-String '''c''' in eine Dezimalzahl umwandeln. 3. Mit '''(char) x''' können wir eine Zahl '''x''' (Datentyp int) in ein Zeichen umwandeln. Besondere Vorsicht ist geboten mit dem Datentyp der Variablen, in denen die Zwischenergebnisse der Umwandlung abgespeichert werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;popup name=&amp;quot;Lösungshinweise für die Zusatzaufgabe&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
public void crypto3Decode(String txt){&lt;br /&gt;
&lt;br /&gt;
//Schleife durchläuft in 7er-Schritten den Binärzahl-String (Beginn des nächsten Zeichens)&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
//Erfassen des 7-stelligen Binärzahl-Strings mit einer geeigneten Methode der Klasse String&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
//Umwandeln des Binärzahl-Strings in eine Dezimalzahl&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
//Umwandeln der (ASCII)-Zahl in das entsprechende Zeichen&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
//Ausgabe des Zeichens&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/popup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;popup name=&amp;quot;Lösungsvorschlag&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public void crypto3(String txt){&lt;br /&gt;
&lt;br /&gt;
//In Kleinbuchstaben umwandeln&lt;br /&gt;
  txt=txt.toLowerCase();&lt;br /&gt;
&lt;br /&gt;
//Leerzeichen entfernen&lt;br /&gt;
  txt=txt.replaceAll(&amp;quot; &amp;quot;,&amp;quot;&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
//Schleife durch die Zeichenkette durchlaufen lassen&lt;br /&gt;
  for(int i=0;i&amp;lt;txt.length();i++){&lt;br /&gt;
&lt;br /&gt;
//Das jeweilge Zeichen in einen Binärzahl-String umwandeln&lt;br /&gt;
&lt;br /&gt;
  String b=Integer.toBinaryString(txt.charAt(i)); &lt;br /&gt;
&lt;br /&gt;
//String ausgeben&lt;br /&gt;
  System.out.print(b);}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
//Binärzahl-String mit Anführungszeichen (!) eingeben &lt;br /&gt;
  public void crypto3Decode(String txt){&lt;br /&gt;
&lt;br /&gt;
//Schleife durchläuft in 7er-Schritten den Binärzahl-String&lt;br /&gt;
  for(int i=0;i&amp;lt;txt.length();i+=7){&lt;br /&gt;
&lt;br /&gt;
//Erfassen des 7-stelligen Binärzahl-Strings&lt;br /&gt;
  String c=txt.substring(i,i+7); &lt;br /&gt;
&lt;br /&gt;
//Umwandeln des Binärzahl-Strings in eine Dezimalzahl&lt;br /&gt;
  int d=Integer.parseInt(c, 2); &lt;br /&gt;
&lt;br /&gt;
//Umwandeln der (ASCII)-Zahl in das entsprechende Zeichen&lt;br /&gt;
  char e=(char) d; &lt;br /&gt;
&lt;br /&gt;
//Ausgabe des Zeichens&lt;br /&gt;
  System.out.print(e);&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;/popup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Aufgabe 6'''&lt;br /&gt;
&lt;br /&gt;
Erstelle eine Methode '''woerterZaehlen()''', die nach Eingabe eines Satzes ausgibt, aus wievielen Wörter der Satz besteht.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;popup name=&amp;quot;Lösungsvorschlag&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
 public void woerterZaehlen(String txt){&lt;br /&gt;
&lt;br /&gt;
//Zählvariable um die Zahl der Wörter abzuspeichern. Initialisierung mit Wert 1, da die Zahl der Wörter gleich Zahl der Leerstellen + 1&lt;br /&gt;
  int j=1;&lt;br /&gt;
&lt;br /&gt;
//Schleife läft durch die ganze Zeichenkette&lt;br /&gt;
  for(int i=0; i&amp;lt;txt.length();i++){&lt;br /&gt;
&lt;br /&gt;
//Die Zählvariable j wird um 1 erhöht, wenn ein Leerzeichen als Wortgrenze gefunden wird&lt;br /&gt;
  if(txt.charAt(i)==' '){j++;}&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
//Endwert von j ausgeben&lt;br /&gt;
  System.out.println(&amp;quot;Der Satz hat &amp;quot;+j+&amp;quot; Wörter.&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;/popup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>B.Schiller</name></author>	</entry>

	</feed>