- 1 名前:デフォルトの名無しさん mailto:sageteoff [2017/12/21(木) 00:24:33.33 ID:E/ADCCn6.net]
- Java初心者のためのスレッドです。
※前スレ Java入門・初心者質問スレ Part.5 mevius.2ch.net/test/read.cgi/tech/1506675205/
- 804 名前:デフォルトの名無しさん mailto:sage [2018/02/11(日) 10:39:00.95 ID:Vla6Y0kh.net]
- PowerShellはゴミ
コレクション周りでハマると、もうインラインでC#書いてやろうかと思う
- 805 名前:デフォルトの名無しさん mailto:sage [2018/02/11(日) 10:44:00.18 ID:YeNWUzxx.net]
- >>780
最近はcakeが楽すぎて、スクリプトも全部c#で書いてるわ javaでcakeと同じことやろうとすると何がおすすめ?
- 806 名前:デフォルトの名無しさん mailto:sage [2018/02/11(日) 10:51:10.19 ID:hZTy6Y/G.net]
- Gradle
- 807 名前:デフォルトの名無しさん mailto:sage [2018/02/11(日) 11:08:50.25 ID:CuFerfqg.net]
- 最近はweb系は全てnodejsに支配されてる感がある
- 808 名前:デフォルトの名無しさん mailto:sage [2018/02/11(日) 11:13:49.18 ID:zXTZLl5w.net]
- あるプログラムを手を加えているるうちに
コマンドプロンプトで実行させたあとに1〜2秒ほどの謎のウエイトがかかるようになったんだけど何で待たされているのでしょうか public class Sample { public static void main (String[]args) { (略 650行程度) System.out.println("終了"); } //mainメソッドここまで メソッドは10前後 } 上で言えばmainメソッドの最後で「終了」って表示してからその後何もさせてないのにコマンドラインの入力欄に戻るまでに1〜2秒待たされるようになりました。
- 809 名前:デフォルトの名無しさん mailto:sage [2018/02/11(日) 11:25:19.00 ID:CuFerfqg.net]
- 肝心の処理がわからなきゃなんも言えん
とりあえずverbose付けて実行してみろよ?
- 810 名前:デフォルトの名無しさん mailto:sage [2018/02/11(日) 11:55:08.44 ID:xdDHKV4A.net]
- メソッド全部消しても再現するの?
- 811 名前:デフォルトの名無しさん mailto:sage [2018/02/11(日) 12:31:14.10 ID:PoFQMINp.net]
- >>776
mac除いて素のC言語足せば文句なしだわ
- 812 名前:デフォルトの名無しさん [2018/02/11(日) 13:31:09.65 ID:B0DbdRYG.net]
- Perlもよろしく
- 813 名前:デフォルトの名無しさん mailto:sage [2018/02/11(日) 16:31:49.42 ID:QgiY6BS8.net]
- なんていうかMac以外は清潔感がないから社会人としてマナー違反
朝起きて身だしなみ整えずジャージで外を出歩くような感覚
- 814 名前:デフォルトの名無しさん mailto:sage [2018/02/11(日) 18:22:09.23 ID:B0DbdRYG.net]
- Macはインテリアの一種であり見た目のデザインで売ってる製品だから実用性に欠ける部分があっても買うユーザは最初から気にしない。
まあしかし中身がUNIXであることにより少し救われている。
- 815 名前:デフォルトの名無しさん mailto:sage [2018/02/11(日) 19:57:57.53 ID:icMKiG8e.net]
- >>788
承服致しかねます
- 816 名前:デフォルトの名無しさん mailto:sage [2018/02/11(日) 21:52:18.83 ID:aZ0naO6m.net]
- >>789
俺にぴったりだ
- 817 名前:デフォルトの名無しさん mailto:sage [2018/02/12(月) 04:39:09.88 ID:gkLkkA1t.net]
- mac使うのガイジだけだろ
- 818 名前:デフォルトの名無しさん mailto:sage [2018/02/12(月) 09:24:45.05 ID:Bk9VmC4X.net]
- ビジネスマンならmacしか選択肢がない
やすい靴やすいスーツやすい時計やすいネクタイやすいシャツ ビジネスマンなら身嗜みを間違えると相手に軽く見られるってことをわかってるだろう それと同じで端末も身嗜みだからある程度金をかけてセンスがいいものを選ばないとね ビシッと身嗜みを決めたビジネスマンが格安のネットブックやガキっぽいゲーミングノートを取り出したらこの人と仕事して大丈夫かなって不安になるよ
- 819 名前:デフォルトの名無しさん mailto:sage [2018/02/12(月) 10:30:50.10 ID:JW89phfM.net]
- >>790
これ vimとsshがあればなんでもいいんだから、macで用が足りてる
- 820 名前:デフォルトの名無しさん mailto:sage [2018/02/12(月) 11:23:44.09 ID:GfEZnF0r.net]
- >>795
>>779
- 821 名前:デフォルトの名無しさん mailto:sage [2018/02/12(月) 11:31:43.74 ID:Dq1d51GH.net]
- >>778
勝手に機能変えられる 止まったり重くなった時に原因調べるのが大変 OSがサポートしてるツールが少ない
- 822 名前:デフォルトの名無しさん mailto:sage [2018/02/12(月) 11:35:43.25 ID:Dq1d51GH.net]
- >>795
aptみたいのないと不便すぎる
- 823 名前:デフォルトの名無しさん mailto:sage [2018/02/12(月) 12:01:19.55 ID:GfEZnF0r.net]
- >>797
ツール数の比較よろ
- 824 名前:デフォルトの名無しさん mailto:sage [2018/02/12(月) 12:49:31.47 ID:qRqzoJSM.net]
- >>798
brewあるで
- 825 名前:デフォルトの名無しさん mailto:sage [2018/02/12(月) 13:00:39.48 ID:2UKclRN3.net]
- >>795
Winでも足りるレベルじゃねーか
- 826 名前:デフォルトの名無しさん mailto:sage [2018/02/12(月) 13:12:58.54 ID:Bk9VmC4X.net]
- それ言ったらOSなんてなんでもいい
今時の開発環境はマルチプラットフォーム対応進んでるし 対応してなくても仮想化でどうにでもなる 中身はなんでもいいなら見た目やブランドが重要になるからわかってる人はMacを選択するんだよ
- 827 名前:デフォルトの名無しさん mailto:sage [2018/02/12(月) 13:26:59.12 ID:qRqzoJSM.net]
- >>801
あ、そうなの?じゃあWinでも足りるよ
- 828 名前:デフォルトの名無しさん mailto:sage [2018/02/12(月) 13:46:46.04 ID:eSqAJ2WH.net]
- じゃあぼくはDebianでいいや
- 829 名前:デフォルトの名無しさん [2018/02/12(月) 13:50:07.67 ID:S+p/PDus.net]
- Windows10 で、WSL で、MS Store から、Ubuntu 16.04 LTS をダウンロードして、
Ruby をインストールする。 最初から、Python, vim も入っている 200MB ほどダウンロードして、850MB ほどの容量。 ただし、GUI版ではなく、Ubuntuサーバー Java も入っていないけど、以下のパッケージがあるみたい。 * default-jre * gcj-5-jre-headless * openjdk-8-jre-headless * gcj-4.8-jre-headless * gcj-4.9-jre-headless * openjdk-9-jre-headless
- 830 名前:デフォルトの名無しさん mailto:sage [2018/02/12(月) 15:24:20.39 ID:WEGvUxeo.net]
- 面倒すぎワラタ
- 831 名前:805 mailto:sage [2018/02/12(月) 16:25:40.40 ID:S+p/PDus.net]
- Windows10 で、WSL で、MS Store から、Ubuntu 16.04 LTS をダウンロードして、
Ruby をインストールする 全パッケージの更新 sudo apt-get update sudo apt-get dist-upgrade sudo apt install ruby 日本語ロケールと、man コマンドの日本語化 sudo apt install language-pack-ja sudo apt-get install manpages-ja manpages-ja-dev touch ~/.bash_aliases ホームディレクトリに、.bash_aliases というファイルを作って、そこに、 export LANG=ja_JP.UTF-8 と書いて、bash を日本語ロケールにする Java も、sudo apt install で、インストールできる
- 832 名前:デフォルトの名無しさん [2018/02/12(月) 17:22:13.84 ID:gfcybQxo.net]
- >>794
それは主に接客をやる営業の人向けの話だな。かといって客の前で客以上の服とか物とか持っていると悟られるのはまずい。
- 833 名前:デフォルトの名無しさん mailto:sage [2018/02/12(月) 17:51:26.65 ID:Dq1d51GH.net]
- >>800
標準でないから標準のツールが管理されない >>799 先ず数えるツールがないとこから不便だな
- 834 名前:デフォルトの名無しさん [2018/02/12(月) 18:13:03.49 ID:gfcybQxo.net]
- >>802
見た目やブランドを気にする人はそれによって人と競っているような人だけ。 普通の技術者はそんな所で競わないので結果的に見た目がどうでもよくなる。
- 835 名前:デフォルトの名無しさん mailto:sage [2018/02/12(月) 18:25:15.14 ID:gfcybQxo.net]
- >>807
環境変数 LANG の設定は ~/.bash_aliases じゃなくて ~/.bashrc に直接書いた方がいいのでは? 意味的にも違うしそもそも ~/.bash_aliases は ~/.bashrc で読むようになっているだけのスクリプトだ。 bash が直接読むファイルではないから違う環境に行ったら使えないかも知れない。
- 836 名前:デフォルトの名無しさん mailto:sage [2018/02/12(月) 18:29:56.92 ID:GfEZnF0r.net]
- >>809
なるほど、比較対象のmacがそれじゃ数えられないね
- 837 名前:デフォルトの名無しさん [2018/02/12(月) 18:42:41.44 ID:pVBDRrcw.net]
- Javaて無償で使えなくなる予定なのか?
- 838 名前:デフォルトの名無しさん [2018/02/12(月) 18:43:18.02 ID:gfcybQxo.net]
- >>801
Linux でも足りる。というか、普通のLinuxディストリビューションだと何もしなくても最初からインストールされている。
- 839 名前:デフォルトの名無しさん [2018/02/12(月) 18:51:02.13 ID:gfcybQxo.net]
- >>813
Open JDK があるので無償で使い続けることは可能だ。 gihyo.jp/news/report/01/JavaOne2017/0002
- 840 名前:デフォルトの名無しさん [2018/02/12(月) 18:56:46.30 ID:pVBDRrcw.net]
- >>815
なるほど 開発版と安定版みたいな感じか・・・
- 841 名前:デフォルトの名無しさん mailto:sage [2018/02/12(月) 19:05:40.88 ID:GfEZnF0r.net]
- >>816
アップグレードし続けないとすぐにサポート切れになるがな
- 842 名前:デフォルトの名無しさん mailto:sage [2018/02/12(月) 19:19:05.13 ID:gfcybQxo.net]
- RedHat みたいな感じかな。全部フリーのFedoraをテストして長期リリースにしてサポートで金を取る方式。
しかし元がフリーということは CentOS みたいなテスト後のやつを揃えたやつが出てくる可能性がある。
- 843 名前:デフォルトの名無しさん mailto:sage [2018/02/12(月) 19:35:09.62 ID:tHIswjpT.net]
- >>818
OpenJDKの改変はライセンス違反。 OpenJDKのソースはGPLだが、特許の利用許諾はJCPを通っていることが条件。 改変したらJCPの認定から外れるので、その瞬間にオラクルに特許侵害で巨額の賠償金を請求されることになる。
- 844 名前:デフォルトの名無しさん mailto:sage [2018/02/12(月) 19:39:26.73 ID:pZ0Kl34B.net]
- これってKotlinならセフセフなのか?
Javaはもうやめた
- 845 名前:ほうが安全そうだな []
- [ここ壊れてます]
- 846 名前:デフォルトの名無しさん [2018/02/12(月) 19:52:33.75 ID:gfcybQxo.net]
- >>819
あ、そうなの? GPLは改変再配布を許すライセンスじゃなかったっけ?
- 847 名前:デフォルトの名無しさん mailto:sage [2018/02/12(月) 19:59:41.06 ID:tHIswjpT.net]
- >>821
GPLv2による利用許諾はあくまで著作権の利用許諾 配布者が利用者を特許侵害で訴えることの可能な欠陥ライセンスだ オラクルにとっては極めて好都合なライセンスでもある
- 848 名前:デフォルトの名無しさん [2018/02/12(月) 20:00:36.76 ID:gfcybQxo.net]
- >>820
今流行ってるのは Java VM 上で動く Kotlin だが、それ使い続ける限り何か影響はあるかも知れない。 しかし kotlin は JavaScript で動くようにするやつやネイティブも作っているのでそちらは影響を受けない筈。
- 849 名前:デフォルトの名無しさん mailto:sage [2018/02/12(月) 20:03:47.34 ID:gfcybQxo.net]
- >>822
なるほど。 でも特許部分をくり抜いた版って出せるんじゃないかな? まあそれだともはやJavaではなくなるのかも知れないが。
- 850 名前:デフォルトの名無しさん mailto:sage [2018/02/12(月) 20:14:07.01 ID:tHIswjpT.net]
- >>824
さすがにそんなことをするくらいなら.NET Core向けにJavaコンパイラとJava APIを実装したほうが遥かに建設的で手っ取り早いだろうな オラクルに言わせれば、APIには著作権が及ぶらしいからどのみち訴訟は避けられないわけだが、 海賊版JVMを作るのに比べたら裁判の勝ち目はあるだろう
- 851 名前:デフォルトの名無しさん mailto:sage [2018/02/12(月) 20:19:55.45 ID:NpQ9GJ9J.net]
- oracleに買われたものは何かしら不安が残るな
- 852 名前:デフォルトの名無しさん mailto:sage [2018/02/12(月) 20:52:59.67 ID:GfEZnF0r.net]
- 少し前のMicrosoftやな
- 853 名前:デフォルトの名無しさん mailto:sage [2018/02/15(木) 09:20:07.56 ID:JTk+EmTS.net]
- 実行スピードは落ちても構わないのでCPUにかかる負担を減らしたい場合
簡単な方法は無いでしょうか
- 854 名前:デフォルトの名無しさん mailto:sage [2018/02/15(木) 11:10:46.44 ID:QO/Sl0bJ.net]
- どんだけ抽象的だよ・・真性のクソ馬鹿かおまえ?
- 855 名前:デフォルトの名無しさん mailto:sage [2018/02/15(木) 11:48:25.90 ID:38r4ox9p.net]
- 全部手動でやればいいんじゃね? CPUにかかる負担ゼロになるし。
- 856 名前:デフォルトの名無しさん [2018/02/15(木) 14:27:17.99 ID:skblyvdp.net]
- >>828
sleepあちこちに入れたら?
- 857 名前:デフォルトの名無しさん mailto:sage [2018/02/15(木) 15:19:28.29 ID:JTk+EmTS.net]
- >>829-830
分からないなら黙っていてください。(NGしました) >>831 ありがとうございます。
- 858 名前:デフォルトの名無しさん mailto:sage [2018/02/15(木) 15:38:47.40 ID:c0aRNk8h.net]
- NGアピールガイジ
- 859 名前:デフォルトの名無しさん mailto:sage [2018/02/15(木) 17:58:52.48 ID:KmltFhyK.net]
- 文字列str1から文字列"str2"を検索する方法はこうですが
str1.indexOf("str2",0) 両方の文字を数値のbyte配列化してこれより高速に検索する方法ないですか? 地道に配列内を上からチェックしていけばいいですが それよりスマートで高速な方法ないでしょうか? 文字処理は一般に遅いですが 結局str1.indexOfが一番はやい?
- 860 名前:デフォルトの名無しさん mailto:sage [2018/02/15(木) 18:04:56.71 ID:J5ESFAd4.net]
- 正規表現使えば?
速度だけならどういう実装が一番速いのかは知らんけど
- 861 名前:デフォルトの名無しさん [2018/02/15(木) 18:35:20.81 ID:skblyvdp.net]
- 気に入らないならソースの String.java を参考にして自作してみれば?
もっと高速化する楽な方法はJNIで作ったり外部コマンド動かしたりする方法かな。
- 862 名前:デフォルトの名無しさん mailto:sage [2018/02/15(木) 18:36:21.54 ID:huciZvxI.net]
- >>834
電文処理など、文字列とBYTE列が交わるポイントは確かにあるけど、 可能な限り、文字列は文字列、BYTE列はBYTE列の世界で取り扱うほうが いいと思うよ。
- 863 名前:デフォルトの名無しさん mailto:sage [2018/02/15(木) 18:36:51.31 ID:aKcpIhES.net]
- indexOfの実装にもよるんじゃねえの?
単なる文字列じゃなくなっても大手術しなくて済むように無理しないのが一番良いと思うけど。 バイト列だと思いもよらない文字の切れ
- 864 名前:目でヒットしたり地獄見ると思う。
入ってるかどうかだけが知りたいならcontainsにするか、それでも遅いならCharSequenceにしてからトライ木にするか。 [] - [ここ壊れてます]
- 865 名前:デフォルトの名無しさん mailto:sage [2018/02/15(木) 18:59:28.98 ID:38r4ox9p.net]
- >>834
ボトルネックでないのに無駄に高速化しようとするのは愚策だから止めた方が。 ボトルネックになってるのであれば同じ文書内を複数の単語で何度も検索するとか 同じ単語で大量の文書を検索するとか具体的なシチュエーションが出てくるだろうし、 そのシチュエーションに適した高速化すりゃいいだけ。 どんなシチュエーションでもindexOfを上回る (苦労してコード書く意味があるようなレベルで)ってのはかなり難しい。 例えばbyte[]に変換ってのも検索と比較すれば十分重い処理だし。
- 866 名前:デフォルトの名無しさん mailto:sage [2018/02/15(木) 19:16:55.17 ID:KmltFhyK.net]
- 了解しました
結局str1.indexOfでやるのがよさそうですね
- 867 名前:デフォルトの名無しさん mailto:sage [2018/02/16(金) 16:28:18.34 ID:M8XJLm2H.net]
- >>831
sleep入れても負担は増えるだけだろ 総計算量は同じでsleepを処理する計算が増える 手で処理するしかない 具体的なプログラムが提示されれば改善の余地はあるかも知れないが 時間あたりの負荷が高く他の処理の邪魔をしたくないという話ならプロセスのプライオリティを下げろ
- 868 名前:デフォルトの名無しさん mailto:sage [2018/02/16(金) 16:35:42.12 ID:M8XJLm2H.net]
- >>834
レベルと用途が不明だが 事前にindexを作っておいてそこから探すのが速い
- 869 名前:デフォルトの名無しさん [2018/02/16(金) 18:23:24.27 ID:YSXjevvC.net]
- >>841
sleepを処理する計算?sleepの前処理のこと?それ以上にsleepすればいいのでは? JavaVM内だとどうやってるのかは知らないが、sleepはVM内で指定の時間後に割り込み掛かるようにしてからスレッド停止してるだけじゃないの? スレッド停止するならその分だけCPUタイムは食わなくなるよ。
- 870 名前:デフォルトの名無しさん mailto:sage [2018/02/16(金) 21:46:38.60 ID:FM33hhMj.net]
- windowsならこういうのあるよ。
Windows10 - プロセス(アプリ)の優先度を指定(変更)する方法 https://pc-karuma.net/windows-10-process-priority/
- 871 名前:デフォルトの名無しさん [2018/02/17(土) 00:39:13.30 ID:EWYfJ6l0.net]
- Linux だと nice とか renice とか ionice ってコマンドがある。
- 872 名前:デフォルトの名無しさん mailto:sage [2018/02/17(土) 09:55:42.68 ID:lGVkh7Ch.net]
- >>843
なぜ負担をCPUタイムと置き換えてる
- 873 名前:デフォルトの名無しさん [2018/02/17(土) 17:06:22.90 ID:EWYfJ6l0.net]
- >>846
負担と言ったら普通そうなのでは? それに元の質問は「実行スピードは落ちても構わないのでCPUにかかる負担を減らしたい」だから JavaVMのOSでのプライオリティそのままでやるとしたらプログラム中の sleep ぐらいしか方法 ないと思うが?
- 874 名前:デフォルトの名無しさん mailto:sage [2018/02/17(土) 17:41:08.22 ID:lGVkh7Ch.net]
- >>847
普通に考えると違うだろう
- 875 名前:デフォルトの名無しさん mailto:sage [2018/02/17(土) 17:43:12.24 ID:lGVkh7Ch.net]
- CPUタイムも増えるしな
- 876 名前:デフォルトの名無しさん [2018/02/17(土) 19:22:28.47 ID:EWYfJ6l0.net]
- >>848>>849
時間当たりのCPU使用率は減って負荷は下がるだろ? sleep してもそうならない環境なんかないと思うがなあ。
- 877 名前:デフォルトの名無しさん mailto:sage [2018/02/17(土) 22:03:31.61 ID:7nMe6yut.net]
- 普通とは?
- 878 名前:デフォルトの名無しさん mailto:sage [2018/02/17(土) 23:57:29.05 ID:AFLiLGCz.net]
- × 普通に考えると
○ 説明できないし実はよく考えていない
- 879 名前:デフォルトの名無しさん mailto:sage [2018/02/18(日) 06:52:07.13 ID:4dAbe4pu.net]
- >>850
なんで負荷とか自分の思い込んだ質問に置き換えてんだよ プログラマに向いてない
- 880 名前:デフォルトの名無しさん mailto:sage [2018/02/18(日) 06:53:43.28 ID:4dAbe4pu.net]
- CPUタイムとCPU使用率も違う
- 881 名前:デフォルトの名無しさん mailto:sage [2018/02/18(日) 06:55:19.71 ID:4dAbe4pu.net]
- > 負担と言ったら普通そうなのでは?
考えてなかったのか
- 882 名前:デフォルトの名無しさん mailto:sage [2018/02/18(日) 09:03:49.34 ID:vQFeCh33.net]
- この回答のプログラムなんですけど、
https://stackoverflow.com/questions/39530446/google-spread-sheets-appending-data-using-java BatchUpdateSpreadsheetRequest batchRequests = new BatchUpdateSpreadsheetRequest(); と宣言時にオブジェクトを new して代入してますが、その後でまた batchRequests = new BatchUpdateSpreadsheetRequest(); というコードが出てきます。 requests という変数でも同じことをしています。 これって何か意味があるんでしょうか、それとも無駄なことなんでしょうか?
- 883 名前:デフォルトの名無しさん mailto:sage [2018/02/18(日) 09:17:09.22 ID:Hu5U/RaQ.net]
- 無駄
- 884 名前:デフォルトの名無しさん mailto:sage [2018/02/18(日) 09:53:01.77 ID:4dAbe4pu.net]
- >>856
その実装がどうだかは知らないけど コンストラクタに副作用があれば意味ある ただし1回目の代入は無駄 副作用とは、どっかと通信するとか、ファイルに出力するとか
- 885 名前:デフォルトの名無しさん mailto:sage [2018/02/18(日) 10:19:16.26 ID:vQFeCh33.net]
- >>857>>858
ありがとうございました。別に意味はないようですね。実際コードを削除しても動作は変わりませんでした。
- 886 名前:デフォルトの名無しさん mailto:sage [2018/02/18(日) 16:52:39.12 ID:oDDrqbus.net]
- >>853
お大事に。
- 887 名前:デフォルトの名無しさん mailto:sage [2018/02/18(日) 19:11:48.11 ID:4dAbe4pu.net]
- >>860
理解できないか
- 888 名前:デフォルトの名無しさん [2018/02/18(日) 19:49:59.31 ID:fPQxo54S.net]
- 理解できる人いるのかな?
- 889 名前:デフォルトの名無しさん mailto:sage [2018/02/18(日) 20:46:32.15 ID:NoRmyTXZ.net]
- >>862
で、普通とは?
- 890 名前:デフォルトの名無しさん [2018/02/18(日) 21:34:57.38 ID:dCbMrjv3.net]
- もう無理だろう。sleepで負担が増えるとか書いてる時点で触れてはならない人と気づくべきだったということ。
- 891 名前:デフォルトの名無しさん mailto:sage [2018/02/18(日) 21:44:15.08 ID:xK1+NSGl.net]
- 詭弁のガイドラインから推測すると、次はbusywaitの出番だな。
- 892 名前:デフォルトの名無しさん mailto:sage [2018/02/19(月) 08:24:01.74 ID:1DmhRUos.net]
- 負担だから命令投げた時点で発生するものということだろ
CPUタイムで課金とかいうシステムならありえる
- 893 名前:デフォルトの名無しさん [2018/02/19(月) 09:29:52.10 ID:PyvgqCqh.net]
- もうそっとしといてやれよ
- 894 名前:デフォルトの名無しさん mailto:sage [2018/02/19(月) 19:55:22.15 ID:/8ibrm1C.net]
- グーグルスプレッドシートのurlから、シートのIDを抽出するコートはどう書いたらいいですか?例えば、
https://docs.google.com/spreadsheets/d/1IS5WSNxSVSPYseqr0T4LJHU80paHR4vQqB8Cm4GAbiw/edit#gid=0 /d/ の後から次の / まで、 1IS5WSNxSVSPYseqr0T4LJHU80paHR4vQqB8Cm4GAbiw がIDになるのですが、 https://developers.google.com/sheets/guides/concepts >スプレッドシート ID は、文字、数字、いくつかの特殊文字で構成される文字列です。 次の正規表現を使用すると、 >Google スプレッドシートの URL からスプレッドシート ID を抽出できます。 /spreadsheets/d/([a-zA-Z0-9-_]+) と公式にあるんですが、具体的に java のコードで、IDを抽出するにはどうしたらいいですか?
- 895 名前:デフォルトの名無しさん [2018/02/19(月) 20:21:37.87 ID:lymwUlC8.net]
- >>868
どうしても正規表現でやってみたいなら別として、そうでないなら普通に文字列切り出せばいいのでは?
- 896 名前:デフォルトの名無しさん mailto:sage [2018/02/19(月) 20:39:01.32 ID:/8ibrm1C.net]
- javaの入門サイトでググってみて自分で書いたコードがこれなんですけど、もっと簡単なやり方があれば有り難いんですが。
String url = "https://docs.google.com/spreadsheets/d/1IS5WSNxSVSPYseqr0T4LJHU80paHR4vQqB8Cm4GAbiw/edit#gid=0" ; Pattern p = Pattern.compile("/spreadsheets/d/([a-zA-Z0-9-_]+)"); Matcher m = p.matcher(url); m.find() ; System.out.println("IDは : " + m.group().replace("/spreadsheets/d/", ""));
- 897 名前:デフォルトの名無しさん [2018/02/19(月) 20:42:58.92 ID:lymwUlC8.net]
- >>870
group(1)では?
- 898 名前:デフォルトの名無しさん [2018/02/19(月) 20:43:44.15 ID:lymwUlC8.net]
- てか、なんでreplaceする必要がある?
- 899 名前:デフォルトの名無しさん [2018/02/19(月) 20:47:25.62 ID:HFhbrMpy.net]
- >>870
正規表現使うならreplaceはいらないよ m.group(1)でおk
- 900 名前:デフォルトの名無しさん [2018/02/19(月) 20:47:46.51 ID:HFhbrMpy.net]
- >>872
それ聞く必要ある?
- 901 名前:デフォルトの名無しさん [2018/02/19(月) 20:54:02.91 ID:HFhbrMpy.net]
- >>870
簡単にやるならこれで String url = "https://docs.google.com/spreadsheets/d/1IS5WSNxSVSPYseqr0T4LJHU80paHR4vQqB8Cm4GAbiw/edit#gid=0"; String id = url.substring(39, 83);
- 902 名前:デフォルトの名無しさん mailto:sage [2018/02/19(月) 21:04:41.99 ID:NZGEjg4E.net]
- こんなので性器表現w
IDの前のURLが完全に固定なら次のスラッシュのインデックスまで切り出せば良いだけやん アホなのか?
- 903 名前:デフォルトの名無しさん [2018/02/19(月) 21:34:53.60 ID:lymwUlC8.net]
- >>874
ないなw
- 904 名前:デフォルトの名無しさん mailto:sage [2018/02/19(月) 21:42:48.48 ID:/8ibrm1C.net]
- >>873
0が全体の文字列で、1からが()で囲んだグループってことでいいんでしょうか?なんか難しい。
|

|