Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
ynupc
PDF, PPTX
3,559 views
Scalaの文字列処理 Day 2 リテラル・補間子・特殊な文字
Scalaの文字列処理に関するリテラル・補間子・特殊な文字について紹介します。 https://github.com/ynupc/scalastringcourseday2
Technology
◦
Read more
0
Save
Share
Embed
Embed presentation
Download
Download as PDF, PPTX
1
/ 19
2
/ 19
3
/ 19
4
/ 19
5
/ 19
6
/ 19
7
/ 19
8
/ 19
9
/ 19
10
/ 19
11
/ 19
12
/ 19
13
/ 19
14
/ 19
15
/ 19
16
/ 19
17
/ 19
18
/ 19
19
/ 19
More Related Content
KEY
How wonderful to be (statically) typed 〜型が付くってスバラシイ〜
by
Hiromi Ishii
PDF
Freer Monads, More Extensible Effects
by
Hiromi Ishii
PPTX
(Lambdaだけで)純LISPのようなナニかを作る
by
Daichi Teruya
KEY
Algebraic DP: 動的計画法を書きやすく
by
Hiromi Ishii
PDF
Lisp講義1
by
stibear (stibear1996)
KEY
ラムダ計算入門
by
Eita Sugimoto
PDF
Scalaの文字列処理 Day 3 コードポイントとサロゲートペア
by
ynupc
PPTX
XMonad-oid on Emacs & More functional Emacs Lisp | 関数型LT大会
by
Takeshi Okada
How wonderful to be (statically) typed 〜型が付くってスバラシイ〜
by
Hiromi Ishii
Freer Monads, More Extensible Effects
by
Hiromi Ishii
(Lambdaだけで)純LISPのようなナニかを作る
by
Daichi Teruya
Algebraic DP: 動的計画法を書きやすく
by
Hiromi Ishii
Lisp講義1
by
stibear (stibear1996)
ラムダ計算入門
by
Eita Sugimoto
Scalaの文字列処理 Day 3 コードポイントとサロゲートペア
by
ynupc
XMonad-oid on Emacs & More functional Emacs Lisp | 関数型LT大会
by
Takeshi Okada
What's hot
PDF
たのしい関数型
by
Shinichi Kozake
PDF
Ruby 3の型推論やってます
by
mametter
PDF
Haskell Lecture 2
by
Yusuke Matsushita
PDF
型プロファイラ:抽象解釈に基づくRuby 3の静的解析
by
mametter
PDF
Scalaで萌える関数型プログラミング[完全版]
by
Ra Zon
PDF
Scala 初心者が Hom 函手を Scala で考えてみた
by
Kazuyuki TAKASE
PDF
超初心者がローマ数字をいろいろパースしてみる
by
いずみ よねざわ
PDF
「再代入なんて、あるわけない」 ~ふつうのプログラマが関数型言語を知るべき理由~ (Gunma.web #5 2011/05/14)
by
parrotstudio
PDF
Scalaで型クラス入門
by
Makoto Fukuhara
PDF
関数プログラミング入門
by
Hideyuki Tanaka
PDF
磯野ー!関数型言語やろうぜー!
by
Ra Zon
PDF
C++コミュニティーの中心でC++をDISる
by
Hideyuki Tanaka
PDF
すごいHaskell読書会 第7章 (前編)
by
Suguru Hamazaki
PDF
Material
by
_TUNE_
PDF
HiroshimaJUG の「Java8 Lambda ハンズオン with すごい広島」を5分で振り返る
by
tsudaa
PDF
Extensible Eff Applicative
by
Sanshiro Yoshida
たのしい関数型
by
Shinichi Kozake
Ruby 3の型推論やってます
by
mametter
Haskell Lecture 2
by
Yusuke Matsushita
型プロファイラ:抽象解釈に基づくRuby 3の静的解析
by
mametter
Scalaで萌える関数型プログラミング[完全版]
by
Ra Zon
Scala 初心者が Hom 函手を Scala で考えてみた
by
Kazuyuki TAKASE
超初心者がローマ数字をいろいろパースしてみる
by
いずみ よねざわ
「再代入なんて、あるわけない」 ~ふつうのプログラマが関数型言語を知るべき理由~ (Gunma.web #5 2011/05/14)
by
parrotstudio
Scalaで型クラス入門
by
Makoto Fukuhara
関数プログラミング入門
by
Hideyuki Tanaka
磯野ー!関数型言語やろうぜー!
by
Ra Zon
C++コミュニティーの中心でC++をDISる
by
Hideyuki Tanaka
すごいHaskell読書会 第7章 (前編)
by
Suguru Hamazaki
Material
by
_TUNE_
HiroshimaJUG の「Java8 Lambda ハンズオン with すごい広島」を5分で振り返る
by
tsudaa
Extensible Eff Applicative
by
Sanshiro Yoshida
Similar to Scalaの文字列処理 Day 2 リテラル・補間子・特殊な文字
ODP
Scala東北紹介
by
Takeda Hiroyuki
PDF
Scalaで萌える関数型プログラミング[1.1.RC1]
by
Ra Zon
PPTX
Scala勉強会
by
omi end
PDF
197x 20090704 Scalaで並行プログラミング
by
Net Penguin
PDF
Clojure
by
yshigeru
PPT
2008.10.18 L4u Tech Talk
by
mitamex4u
PDF
BOF1-Scala02.pdf
by
Hiroshi Ono
PDF
BOF1-Scala02.pdf
by
Hiroshi Ono
PDF
BOF1-Scala02.pdf
by
Hiroshi Ono
PPTX
ゼロから始めるScala文法 (再)
by
Suguru Hamazaki
PPTX
2013-12-08 西区プログラム勉強会
by
Takatoshi Murakami
PDF
プログラミング言語Scala
by
TanUkkii
PDF
(Ruby使いのための)Scalaで学ぶ関数型プログラミング
by
Ouka Yuka
PDF
Essential Scala 第2章 式、型、値
by
Takuya Tsuchida
PDF
PCさえあればいい。
by
bleis tift
PPTX
Scalamacrosについて
by
dekosuke
PDF
言語アップデート -Scala編-
by
Kota Mizushima
PDF
ScalaでAndroidアプリ開発
by
papamitra
KEY
Beginners Scala in FAN 20121009
by
Taisuke Shiratori
PDF
認証Gwのプロトタイプでgolang使ってみた20171024
by
Kohji Osamura
Scala東北紹介
by
Takeda Hiroyuki
Scalaで萌える関数型プログラミング[1.1.RC1]
by
Ra Zon
Scala勉強会
by
omi end
197x 20090704 Scalaで並行プログラミング
by
Net Penguin
Clojure
by
yshigeru
2008.10.18 L4u Tech Talk
by
mitamex4u
BOF1-Scala02.pdf
by
Hiroshi Ono
BOF1-Scala02.pdf
by
Hiroshi Ono
BOF1-Scala02.pdf
by
Hiroshi Ono
ゼロから始めるScala文法 (再)
by
Suguru Hamazaki
2013-12-08 西区プログラム勉強会
by
Takatoshi Murakami
プログラミング言語Scala
by
TanUkkii
(Ruby使いのための)Scalaで学ぶ関数型プログラミング
by
Ouka Yuka
Essential Scala 第2章 式、型、値
by
Takuya Tsuchida
PCさえあればいい。
by
bleis tift
Scalamacrosについて
by
dekosuke
言語アップデート -Scala編-
by
Kota Mizushima
ScalaでAndroidアプリ開発
by
papamitra
Beginners Scala in FAN 20121009
by
Taisuke Shiratori
認証Gwのプロトタイプでgolang使ってみた20171024
by
Kohji Osamura
Scalaの文字列処理 Day 2 リテラル・補間子・特殊な文字
1.
Scalaの文字列処理 Day 2 リテラル・補間子・特殊な文字
2.
リテラル プログラム中に値を直接記述する表現 Javaではプリミティブ型(boolean, int, float, etc.)や参照型のStringなどに存在 ※Scalaにはプリミティブ型は存在しない
3.
文字に関するリテラル • Char Javaが65,536 (16bit)でUnicodeの1文字を表わそ うとしたけどサロゲートペア登場のせいで完全には 目的を果たせていない悲しいプリミティブ型charを、 参照型CharとしてScalaが引き継いだ •
String Charの配列を扱うラッパークラス
4.
文字コードの歴史 1800年代半ばモールス信号 1900年代初めタイプライタ標準化 1946年ENIAC 70年代 メーカごとに文字コードを策定 70年代後半∼ 言語ごとに文字コードをまとめる動きが活発化 80年代半ば ISOが16bit固定長で世界中の文字を一つの文字集合に収めるUnicodeを構想 90年代前半 Oak言語がUnicodeを採用しchar型を16bit固定長にする (C/C++言語のchar型は8bit固定長) 90年代半ば 1994年Oak言語がJava言語に名称変更、翌年Java言語公開 2003年 Scala言語公開
5.
文字に関するリテラルの例 リテラル Java Scala 空リテラル (Object) Object
n = null; val n: Object = null 文字リテラル (Char) char c = A ; val c: Char = A 文字列リテラル (String) String s = "AB¥¥C¥nあいう"; val s: String = "AB¥¥C¥nあいう" 生文字リテラル (String) val s: String = """AB¥C あいう"""
6.
Scala特有の生文字リテラル 文字列リテラル 生文字リテラル val s:
String = "AB¥¥C¥nあいう" val s: String = """AB¥C あいう""" val waveDash: String = "¥u301c" val waveDash: String = """¥u301c"""
7.
生文字リテラル stripMarginメソッド 生文字リテラルの改行のインデントを える方法 BEFORE (普通の生文字リテラルの改行) AFTER (stripMarginを使用した改行) val s:
String = """AB¥C あいう イロハ""" val s: String = """AB¥C ¦あいう ¦イロハ "".stripMargin val s: String = """AB¥C %あいう %イロハ .stripMargin( % )
8.
Scala特有の補間子 補間子はs補間子、f補間子、raw補間子の3種類 文字列リテラルや生文字リテラルの直前に記述 補間子はStringContextに対する暗黙クラスを定義す ることで自分で作成可能
9.
s補間子 val universe =
"宇宙" val result = s"生命、$universe、そして${s"万物に ついての${"究極の"}疑問"}の答えは、${21 + 21}"
10.
f補間子 s補間子の拡張 val result =
f"サイボーグ${9}%03dVSデビルマン"
11.
raw補間子 文字列リテラル 文字列リテラル+ raw補間子 生文字リテラル val s: String
= "AB¥¥C¥¥nあいう" val s: String = raw"AB¥C¥nあいう" val s: String = """AB¥C¥nあいう""" val waveDash: String = "¥u301c" val waveDash: String = raw"¥u301c" val waveDash: String = """¥u301c""" 同じ???→NO
12.
文字列リテラル+raw補間子と 生文字リテラルの違い 文字列リテラル+ raw補間子 生文字リテラル raw"改 行" →✖ """改 行""" →⭕ raw"ダブルクォーテーション「"」" →✖ """ダブルクォーテーション「"」""" →⭕
13.
補間子の作成 StringContext implicit class
JsonHelper(val sc: StringContext) extends AnyVal { def json(args: Any*): JSONObject = { val strings = sc.parts.iterator val expressions = args.iterator val buf = new StringBuffer(strings.next) while (strings.hasNext) { buf.append(expressions.next).append(strings.next) } parseJson(buf) } val x: JSONObject = json"{ name: $name, id: $id }"
14.
補間子の作成 StringContext implicit class
JsonHelper(val sc: StringContext) extends AnyVal { def json(args: Any*): JSONObject = { val strings = sc.parts.iterator val expressions = args.iterator val buf = new StringBuffer(strings.next) while (strings.hasNext) { buf.append(expressions.next).append(strings.next) } parseJson(buf) } val x: JSONObject = json"{ name: $name, id: $id }" new StringContext("{ name:", ",id: ", "}").json(name, id)
15.
補間子の作成 StringContext implicit class
JsonHelper(val sc: StringContext) extends AnyVal { def json(args: Any*): JSONObject = { val strings = sc.parts.iterator val expressions = args.iterator val buf = new StringBuffer(strings.next) while (strings.hasNext) { buf.append(expressions.next).append(strings.next) } parseJson(buf) } val x: JSONObject = json"{ name: $name, id: $id }" new StringContext("{ name:", ",id: ", "}").json(name, id) new JsonHelper(new StringContext("{ name:", ",id: ", "}")).json(name, id)
16.
補間子の作成 StringContext implicit class
JsonHelper(val sc: StringContext) extends AnyVal { def json(args: Any*): JSONObject = { val strings = sc.parts.iterator val expressions = args.iterator val buf = new StringBuffer(strings.next) while (strings.hasNext) { buf.append(expressions.next).append(strings.next) } parseJson(buf) } val x: JSONObject = json"{ name: $name, id: $id }" new StringContext("{ name:", ",id: ", "}").json(name, id) new JsonHelper(new StringContext("{ name:", ",id: ", "}")).json(name, id)new JsonHelper(new StringContext("{ name:", ",id: ", "}")).json(name, id)
17.
エスケープシーケンス シーケンス 意味 ¥b バックスペース ¥f
改ページ ¥n 改行 ¥r 復帰 ¥t 水平タブ ¥¥ バックスラッシュ・半角円記号 ¥ シングルクォーテーション ¥" ダブルクォーテーション ¥ooo 8進数 o [0, 7], ooo [000, 377]
18.
Unicodeシーケンス シーケンス 意味 ¥uHHHH HHHHは16進数のUnicodeのコードポイント h {0,
1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F} シーケンス例 文字 ¥u3003 同上記号「〃」 ¥u3005 漢字連続記号「々」 ¥u3006 しめ記号「〆」 ¥u3007 漢数字ゼロ「〇」 ¥u301C 波ダッシュ「∼」 ¥u30FB 中点「・」 ¥u4EDD 同上記号「仝」 ¥u599B 幽霊文字「妛」 ¥u5F41 幽霊文字「彁」 ¥uFF5E 全角チルダ「∼」 ¥uD842¥uDFB7 野家の「 」
19.
OS依存文字 文字 取得方法 Windows
Unix 改行 System.getProperty("line.separator") System.lineSeparator String.format("%n") ¥r¥n ¥n ディレクトリ やファイルの パスの区切り System.getProperty("file.separator") File.separator ¥¥ / PATHや CLASSPATH の区切り System.getProperty( path.separator") File.pathSeparator ; :
Download