0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Paiza Cランク獲得問題(Dランク相当) 文字列処理メニュー

Posted at

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を用いて実装しました。
ラムダ式に関しては全然わかっていないので、現段階ではこんなもんか、、って感じで覚えておきます。。

参考
C# で文字列を大文字と小文字に変換する

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?