paizaのCランク獲得問題の解答がなかったので、備忘録として残します。
明らかに簡単な問題の場合は省略しますが、個人的に少しでも考えたコードを残していきたいと思います。
初心者ですので醜いコードを書きますが、温かい目で見守っていただけると嬉しいです。
また、より良い記述方法などありましたら、コメント等で教えていただけると嬉しいです。
目次
- i 文字目の出力
- 文字列の文字数
- 文字の検索
- 文字列の連結
- 部分文字列
- 文字列の挿入
- 文字列の書き換え
- 数値から文字列への変換
- 大文字から小文字への変換
- 大文字小文字の反転
i 文字目の出力
using System;
class Program
{
static void Main()
{
string S=Console.ReadLine();
int i=int.Parse(Console.ReadLine());
Console.WriteLine(S.Substring(i-1,1));
}
}
文字列の文字数
using System;
class Program
{
static void Main()
{
string S=Console.ReadLine();
Console.WriteLine(S.Length);
}
}
文字の検索
using System;
class Program
{
static void Main()
{
string S=Console.ReadLine();
string c=Console.ReadLine();
Console.WriteLine(S.IndexOf(c)+1);
}
}
文字列の連結
using System;
class Program
{
static void Main()
{
int N=int.Parse(Console.ReadLine());
string strings="";
for(int i=0;i<N;i++){
string S=Console.ReadLine();
strings+=S;
}
Console.WriteLine(strings);
}
}
部分文字列
using System;
class Program
{
static void Main()
{
string S=Console.ReadLine();
string [] ij=Console.ReadLine().Split();
int i=int.Parse(ij[0]);
int j=int.Parse(ij[1]);
Console.WriteLine(S.Substring(i-1,j-(i-1)));
}
}
文字列の挿入
using System;
class Program
{
static void Main()
{
string S=Console.ReadLine();
string T=Console.ReadLine();
int N=int.Parse(Console.ReadLine());
string strings=S.Insert(N,T);
Console.WriteLine(strings);
}
}
文字列の書き換え
using System;
class Program
{
static void Main()
{
string S=Console.ReadLine();
string []ic=Console.ReadLine().Split();
int i=int.Parse(ic[0]);
string c=ic[1];
string result = S.Substring(0, i - 1) + c + S.Substring(i);
Console.WriteLine(result);
}
}
Replaceを用いようとしましたが、
PAIZA
5 a
などの入力などでうまくいきませんでした。
(Aが全て変換されてしまう)
数値から文字列への変換
using System;
class Program
{
static void Main()
{
int X=int.Parse(Console.ReadLine());
int Y=int.Parse(Console.ReadLine());
int N=int.Parse(Console.ReadLine());
string result = (X+Y).ToString();
Console.WriteLine(result.Substring(N-1,1));
}
}
大文字から小文字への変換
using System;
class Program
{
static void Main()
{
string S = Console.ReadLine();
string lowerS = S.ToLower();
Console.WriteLine(lowerS);
}
}
全て大文字にするにはToUpperメソッドを用います。
大文字小文字の反転
using System;
using System.Linq;
public class Example
{
public static void Main()
{
string S = Console.ReadLine();
var chars = S.Select(c => char.IsUpper(c) ? char.ToLower(c) : char.ToUpper(c));
var invertedCase = new string(chars.ToArray());
Console.WriteLine(invertedCase);
}
}
Linqを用いて実装しました。
ラムダ式に関しては全然わかっていないので、現段階ではこんなもんか、、って感じで覚えておきます。。