『ボヘミアン・ラプソディ』はなぜ人々を魅了したのか >>

$A = "空白空白A空白空白空白B空白空白";
上記のような文字列から
空白を取り除いて ,(カンマ) に変換するにはどうすれば良いでしょうか?

$A = "A,B"
にしたい。

A 回答 (2件)

もちろん s/// でがんばってもいい.

    • good
    • 0

たとえばさいしょとさいごの空白をつぶして split → join.

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aと関連する良く見られている質問

Qpythonのデータ型に組み込み型があると思いますが、なぜ組み込み型と呼ぶのでしょう? なにが何に組

pythonのデータ型に組み込み型があると思いますが、なぜ組み込み型と呼ぶのでしょう?
なにが何に組み込まれているのでしょう?
オブジェクトにデータ型が組み込まれているという意味でしょうか?

Aベストアンサー

型が言語に組み込まれている。
https://docs.python.org/ja/3/library/stdtypes.html

クラス型なんかは組み込み型や他のクラス型の組合せでPythonプログラム上で定義できるけど、組み込み型が何もなかったらクラス型の定義もできないですから。

Q関数によって、MAX_PATHの値が異なる理由を教えてください。

MAX_PATHは260固定なのに、関数によって異なる理由を教えてください。

CreateFileは259文字まで、それ以上は関数が失敗します。
MakeSureDirectoryPathExistsは248文字まで、それ以上は関数が失敗します。
renameは220文字まで、それ以上は関数が失敗します。

Aベストアンサー

昔のファイルシステム(FAT)ではパス名の最長が255文字に制限されていました。
それに、ドライブレター等(C:¥)3文字とファイル名(8+3)の間のピリオド1文字で
255+3+1=259文字が最長パスです。
さらに、C言語で作成されたライブラリでは、
文字列の末尾にはNull文字(0x00)を付ける約束になっています。
それを含めて、MAX_PATH=260 となっています。
今どきのファイルシステム(NTFS)とはかなり違いますよね。
そんな訳で、時代とともに移り変わるシステムの中身が、
統一が取れているはずと思う方がおかしい。

Qjava についての質問です! 下の写真のように i <= 10 と条件を先につけて あとから i

java についての質問です!
下の写真のように i <= 10 と条件を先につけて
あとから i > 5 break にする理由はなんですか?
java を初めて3日目の人間からしたら
最初から i <= 5 にしておけばいい気しかしないのですが。。

Aベストアンサー

>配列についてはProgateにて学びました!
単純な例ですと

要素数が10000の配列に色々な数字がランダムで入っているとします
この中から指定した数字が入ってる場所を探したい
そうすると、とりあえずfor文は
for(int i = 1; i < 10000; i++)
になりますね

指定した数字が見つければ良いだけですから
実際に10000回もループをまわす必要はありません
もしかしたら一番最初で見つかるかもしれません
じゃあ見つかった後の処理はとても無駄ですし勿体無いです
でももしかしたら10000回目で見つかるのかもしれない...

なので見つけた時点でループを抜けてしまえばいいので
画像の例みたいにif文で判定をしてbreak文で抜けるようにするのです

QC言語プログラムについて質問です

#include <stdio.h>

void str_dcount(const char str[], int cnt[])
{
unsigned i = 0;
while (str[i]) {
if (str[i] >= '0' && str[i] <= '9')
cnt[str[i] - '0']++;
i++;
}
}

int main(void)
{
int i;
int dcnt[10] = {0};
char str[100];

printf("文字列を入力してください:");
scanf("%s", str);

str_dcount(str, dcnt);

puts("数字文字の出現回数");
for (i = 0; i < 10; i++)
printf("'%d':%d\n", i, dcnt[i]);

return (0);
}

というプログラムの、cnt[str[i] - '0']++ の部分の - '0' がなぜ必要なのか理解できません。ゼロをマイナスするというのはあってもなくても同じだと思うんですが。

#include <stdio.h>

void str_dcount(const char str[], int cnt[])
{
unsigned i = 0;
while (str[i]) {
if (str[i] >= '0' && str[i] <= '9')
cnt[str[i] - '0']++;
i++;
}
}

int main(void)
{
int i;
int dcnt[10] = {0};
char str[100];

printf("文字列を入力してください:");
scanf("%s", str);

str_dcount(str, dcnt);

puts("数字文字の出現回数");
for (i = 0; i < 10; i++)
printf("'%d':%d\n", i, dcnt[i]);

return (0);
}

という...続きを読む

Aベストアンサー

'0'は文字ですので数字で言うところのゼロではないですね
'0'を数字に表すと48です

ASCIIコード というのを調べてみましょう

Qjavaが文字コードの影響でコンパイルが通りません。

java jdk-12 , windows10 , Tera Pad でコンパイルしようとしていますが、

 1つ目、

  エラー: この文字(0xEF)は、エンコーディングwindows-31jにマップできません

のエラーが出てコンパイルが通りません。 

ネットで調べて -encoding UTF-8 を追加してコンパイルしたら通ったのですが、次に

 2つ目、

  エラー: '\ufeff'は不正な文字です

というエラーが出ます。

UTF-8のBOMが原因のようですが、ネットで調べた方法をいくつか試してみても

コンパイルが通りません。

どのようにしたらよいでしょうか?


試した方法: UTF-8N にする , 一度Shift-Jisに変換してみる
$ nkf --overwrite --oc=UTF-8 ($は内部コマンドまたは...認識されませんと出ます)
ネット上のBOMをスキップする方法というソース

java jdk-12 , windows10 , Tera Pad でコンパイルしようとしていますが、

 1つ目、

  エラー: この文字(0xEF)は、エンコーディングwindows-31jにマップできません

のエラーが出てコンパイルが通りません。 

ネットで調べて -encoding UTF-8 を追加してコンパイルしたら通ったのですが、次に

 2つ目、

  エラー: '\ufeff'は不正な文字です

というエラーが出ます。

UTF-8のBOMが原因のようですが、ネットで調べた方法をいくつか試してみても

コンパイルが通りません。

ど...続きを読む

Aベストアンサー

>エラー: この文字(0xEF)は、エンコーディングwindows-31jにマップできません

日本語環境のWindowsで、普通に起動したコマンドプロンプトはShiftJISなんじゃないですかね?
https://qiita.com/user0/items/a9116acc7bd7b70ecfb0

TeraPadで保存時の文字コードをShiftJISにしたらどうなるでしょう?

とは言え…JavaならUTF-8とかでしょうかねぇ。
先程掲示したURLの方法でコードページをUTF-8にしてみてはどうでしょうか。

>$ nkf --overwrite --oc=UTF-8 ($は内部コマンドまたは...認識されませんと出ます)

Windowsには標準でnkfは入っていないと思いますけど、そこのところどうなんです?
vectorとかからDLして入れたんですか?
そして…コマンド入力時にプロンプトは入力しませんよ?
# Linuxとかのシェルのプロンプトだと思いますが…。

QC#について質問【複数の.datファイルからデータを取得後csvファイルでリストを作成】

いつもお世話になります。
複数の.datファイル(カンマ区切りの4~5列、約800行程度)
ProcessData,LOT_ID,3,AP0076686.00C,
ProcessData,LOT_ID_SUB,3,AP0076686.00,
ProcessData,LOT_NO,3,AP0076686,
ProcessData,WAFER_ID,3,AP0076686.19,
ProcessData,WAFER_NO,1,19,
ProcessData,PRODSPEC_ID,3,T5DH20001-00001.00,
ProcessData,PRODGRP_ID,3,T5DH2,
ProcessData,PRODGRP_BIND,3,T5DH2,
ProcessData,MAIN_MAINPD_ID,3,A6L511NY.00,
ProcessData,MAINPD_ID,3,A6L511NY.00,
ProcessData,FLOW_TYPE,3,Main,
ProcessData,FLOW_TYPE_NO,1,1,
ProcessData,D_SEQNO,1,169,
ProcessData,OP_NO,3,PNH PEP.MA1,
ProcessData,OP_NO_NAME,3,本処理,
ProcessData,PD_IDENT,3,PPNHIMA1.00,
ProcessData,PD_IDENT_NAME,3,PEP,
ProcessData,EQP_GROUP_CODE,3,PKRF,
ProcessData,EQP_GROUP_NAME,3,KrF SCANNER(SK3000 + ES5),
ProcessData,EQP_GROUP_BIND,3,PKRF,
ProcessData,EQP_ID,3,PKRF004,
ProcessData,PH_RECIPE_ID,3,PES5MIX,
ProcessData,RCP_NAME_SPACE,3,PEPMA,
ProcessData,LC_RECIPE_ID,3,PKRF.01,
ProcessData,RECIPE_ID,3,PEPMA.PES5MIX,
ProcessData,S_DATE,4,2019/01/24 12:47:09,
ProcessData,E_DATE,4,2019/01/24 12:47:51,
ProcessData,CAST_ID,3,PA0-00349,
ProcessData,SLOT_NO,1,19,

の中からSplitを用いて string[]dataTemp = fileData.Split(',');で
(ProcessData[0],EQP_ID[1],3[2],PKRF004[3],)のように配列に格納して
ifを使ってdataTemp[1] == "EQP_ID"の時にdataTemp[3](PKRF004)を
    dataTemp[1] == "LOT_ID"の時にdataTemp[3] (AP0076686.00C)を
    dataTemp[1] == "WAFER_ID"の時にdataTemp[3] (AP0076686.19)を
dataTemp[1] == "S_DATE"の時にdataTemp[3](2019/01/24 12:47:09)を
新たにCSVファイルを作成して上記のデータを入力したリストを作りたいのですが、C#初心者で
色々と試行錯誤しましたが知識が足りないようです。。。。


リストについてはヘッダーなどは必要ありません。.datが大量にあるので一列にEQP_ID、LOT_ID、WAFER_ID、S_DATEが並んだ状態で何100行とある状態リストを作成したいです。

詳しい方ご教授をお願いいたします。

いつもお世話になります。
複数の.datファイル(カンマ区切りの4~5列、約800行程度)
ProcessData,LOT_ID,3,AP0076686.00C,
ProcessData,LOT_ID_SUB,3,AP0076686.00,
ProcessData,LOT_NO,3,AP0076686,
ProcessData,WAFER_ID,3,AP0076686.19,
ProcessData,WAFER_NO,1,19,
ProcessData,PRODSPEC_ID,3,T5DH20001-00001.00,
ProcessData,PRODGRP_ID,3,T5DH2,
ProcessData,PRODGRP_BIND,3,T5DH2,
ProcessData,MAIN_MAINPD_ID,3,A6L511NY.00,
ProcessData,MAINPD_ID,3,A6L511NY.00,
ProcessData,FLOW_TYP...続きを読む

Aベストアンサー

質問内容が多岐に渡ってきているため、どこまで出来て、どこが出来ないのか、を整理して、
改めて質問を行うことをお勧めします。

今できないのは、元の質問内容ではなく、それぞれのロジックの書き方を理解していませんよね。
C#の文法。
対象ディレクトリ内のファイルの一覧を得るにはどうすればいいのか。
ファイルの読み込み、書き出しをするにはどうすればいいのか。
繰り返し処理するにはどうすればいいのか。
など。

最終目的を質問しても、誰も正解は教えてくれませんし、ネットには正解は転がっていません。
知識、情報を組み合わせて正解を作り上げるので。

そのため、実現するためのプロセスを細分化し、プロセス単位に方法論をネットで調べるとか、質問するとかになると思います。

QPerlで、「が」を、「が」に戻す方法

Perlで作ったcgiで、ブラウザから文字入力してデータ保存するcgiがあるのですが、データの「が」が、「か&#12441;」のように保存されてしまうケースがあります。
おそらく「か」+「濁点の゛」の2つに分かれてしまったのだと思います。
データは、EUC-JPでテキストで保存されています。

このデータ「か&#12441;」を、「が」に戻す方法を教えてください。

Aベストアンサー

力ずくだけど s/// で変換する.

QC#言語学んで

実際にプログラム打ち込んでも無反応です
何か打ち込んでもダメです
そしてエラーが起きます

Aベストアンサー

> そしてエラーが起きます

という事は、開発環境なんかはインストール、設定されてるって事ですね?

まずは、サンプルプログラムを打ち込む、というかコピペしてみては。

Microsoft .NET - Hello World -- 最初のプログラム (C# プログラミング ガイド)
https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/inside-a-program/hello-world-your-first-program

で、エラーが出るなら、エラーメッセージの内容を提示すると、問題解決の手掛かりになるかも。

Qすごく勉強不足なんですが、質問させてください。 プログラミングを勉強したいと思います。 そこで沢山プ

すごく勉強不足なんですが、質問させてください。
プログラミングを勉強したいと思います。
そこで沢山プログラミングについて疑問が出てきて、
プログラミング言語ではなく基礎とか種類とか諸々を深く知れる本とかありませんか?

Aベストアンサー

ご質問が漠然としていてご要望に沿うかわかりませんが、以下の書籍は如何でしょうか?

プログラムはなぜ動くのか 第2版 知っておきたいプログラムの基礎知識
https://www.amazon.co.jp/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%81%AF%E3%81%AA%E3%81%9C%E5%8B%95%E3%81%8F%E3%81%AE%E3%81%8B-%E7%AC%AC%EF%BC%92%E7%89%88-%E7%9F%A5%E3%81%A3%E3%81%A6%E3%81%8A%E3%81%8D%E3%81%9F%E3%81%84%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%81%AE%E5%9F%BA%E7%A4%8E%E7%9F%A5%E8%AD%98-%E7%9F%A2%E6%B2%A2%E4%B9%85%E9%9B%84/dp/4822283151/


コンピュータープログラミング入門以前
https://www.amazon.co.jp/%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF%E3%83%BC%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E5%85%A5%E9%96%80%E4%BB%A5%E5%89%8D-%E5%B2%A9%E6%B0%B8%E4%BF%A1%E4%B9%8B/dp/4839936919/

ご質問が漠然としていてご要望に沿うかわかりませんが、以下の書籍は如何でしょうか?

プログラムはなぜ動くのか 第2版 知っておきたいプログラムの基礎知識
https://www.amazon.co.jp/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%81%AF%E3%81%AA%E3%81%9C%E5%8B%95%E3%81%8F%E3%81%AE%E3%81%8B-%E7%AC%AC%EF%BC%92%E7%89%88-%E7%9F%A5%E3%81%A3%E3%81%A6%E3%81%8A%E3%81%8D%E3%81%9F%E3%81%84%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%81%AE%E5%9F%BA%E7%A4%8E%E7%9F%A5%E8%AD%98-%E7%9F%A2...続きを読む

QC++を本で独学してますが、配列とポインタでわからないところがあります。

現在C++を本で独学しており、ポインタの章を終えて配列の章を
学んでいるのですがでわからないところがあります。

『配列名は配列の先頭要素のアドレスをあらわす。』と習ったのですが、
下記のコードにての

#include <iostream>
using namespace std;

int main()
{
char str[] = "Hello";
cout << str << '/\';
return 0;
}

を実行すると"Hello"が出力されるとのことですが、
どうしてchar型配列strの要素をそのまま出力することになるのでしょうか?
この場合、『配列名は配列の先頭要素のアドレスをあらわす。』に
のっとれば出力されるのは「char型配列strの先頭要素のアドレス」に
なり、アドレスが出力されなければおかしいと思うのですが・・・?

同様に

#include <iostream>
using namespace std;

int main()
{
char* char = "Hello";
cout << str << '/\';
return 0;
}

のコードでもどうして間接参照演算子*さえ使わずに
strの要素を出力できるのかがさっぱりわかりません。

ご説明頂ければ幸いです。

現在C++を本で独学しており、ポインタの章を終えて配列の章を
学んでいるのですがでわからないところがあります。

『配列名は配列の先頭要素のアドレスをあらわす。』と習ったのですが、
下記のコードにての

#include <iostream>
using namespace std;

int main()
{
char str[] = "Hello";
cout << str << '/\';
return 0;
}

を実行すると"Hello"が出力されるとのことですが、
どうしてchar型配列strの要素をそのまま出力することになるのでしょうか?
この場合、『配列名は配列の先頭要素...続きを読む

Aベストアンサー

cout の << は。その後の型によって何を表示するかが変わります。
このような仕組をポリモーフィズムと言って、C++の重要な仕組の一つです。


他のポインタだと、そのアドレスを出力する、となっています。
対して、 char * だと「その示すアドレスから順番に、'\0'の前までの『文字』を出力する」となっています。

これは、以下のような理由があります。
・C++の元になったC言語では、「文字列型」というものが無く、「charの配列の先頭から'\0'の前までを文字列として扱う」というルールを使っている。
C++でも、そのルールを引き継いで、char * / char[] を文字列として扱うケースが多い。
・cout << にchar * を指定したとき、圧倒的に「文字列を出力したい」ケースが多い


アドレスを出力させたいのなら、char *でないポインタにキャストすることです。
そういう時は、汎用につかえる void * にキャストするのが常套手段です。

C言語由来の記法では (void * ) str と、(型)とします。
ですが、このキャストはなんでも有りすぎるので、C++ではC++専用のキャスト方法が用意されているので、そちらを使いましょう。
static_cast<void *>(str)

cout の << は。その後の型によって何を表示するかが変わります。
このような仕組をポリモーフィズムと言って、C++の重要な仕組の一つです。


他のポインタだと、そのアドレスを出力する、となっています。
対して、 char * だと「その示すアドレスから順番に、'\0'の前までの『文字』を出力する」となっています。

これは、以下のような理由があります。
・C++の元になったC言語では、「文字列型」というものが無く、「charの配列の先頭から'\0'の前までを文字列として扱う」というルールを使っている。
C++で...続きを読む


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング