質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

4回答

23849閲覧

ダブルクオーテーションで囲まれた文字を取得する方法

mi-c3

総合スコア20

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2016/11/04 06:29

編集2016/11/04 09:09

Javaで
ダブルクオーテーション「"」で囲まれた文字列を取得したいのですが、
Webを調べてもよい方法がヒットしませでした。

何かよい方法を知っている方、教えてください。

処理のイメージは
"AAAA""BBB"
という文字列から
AAA
BBB
を取り出したいです。

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

String target = ""AAAA""BBB""; <= 「"AAAA""BBB"」という文字列です

String[] result;

処理

System.out.println(result[0]); => AAAA が出力される
System.out.println(result[1]); => BBB が出力される

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/11/04 06:59

抜き出す、のイメージがわかないのですが、文字列をどうしたいということでしょうか?文字列の中にダブルクオーテーションが入っていて、除外したいということでしょうか?
guest

回答4

0

  1. "の位置をindexOfで探す
  2. -1でなければ、その次の位置以降からindexOfで"を探す
  3. これも-1でなければ、substringで間の文字列を切り出す
  4. その次からまた"を探し、以降繰り返し

投稿2016/11/04 08:12

swordone

総合スコア20675

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

方法はありました

java

1import java.util.*; 2import java.io.*; 3 4class WE{ 5 6 7 8public static void main(String[] args){ 9 10 11String target = "\"AAAA\"\"BBB\""; 12String[] res=target.split("[\"]+"); 13ArrayList<String> s=new ArrayList<>(); 14 15for(String h:res){ 16if(h.length()==0){ 17}else{ 18s.add(h); 19} 20} 21 22String[] result=new String[s.size()]; 23 24for(int z=0;z<s.size();z++){ 25 26result[z]=s.get(z); 27 28} 29 30System.out.println(result[0]);// => AAAA が出力される 31System.out.println(result[1]);// => BBB が出力される 32 33 34} 35 36 37}

投稿2016/11/04 22:43

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

java

1String target = "\"AAAA\"\"BBB\""; 2 3List<String> result = 4 Arrays.stream(target.split("\"")) 5 .filter(str -> str.length() > 0) 6 .collect(Collectors.toList());

投稿2016/11/04 09:36

A-pZ

総合スコア12011

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

Microsoft Excelが文字列をCSVへ出力する際のエスケープですね・・・
ダブルクオーテーション文字のみしか考えなくてよいなら単純に次のようにできます。

java

1String s = "abc\"\"def" 2s = s.replaceAll("\"\"", "\"");

がしかし、CSVからの読み込みと仮定するなら読み込む時点でダブルクォーテーション文字を解析し
abc""def
->
aaa"def
として読み込むのが普通とおもいます。そうでないと

1,2,"a""b,c"

といった行を正しく読み込めませんので・・・

そんなわけで既に切り出された文字列が"aaa""bbb"のような形になっていることが想定しずらいので質問者さんのやろうとしていることがよくわからないと感じました。

投稿2016/11/04 07:22

KSwordOfHaste

総合スコア18404

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

KSwordOfHaste

2016/11/04 09:51

失礼、早とちりしました。Excelとは関係ない話ですね。この回答は取り消します。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問