問題タブ [stringreader]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - StringBufferInputStream を StringReader に置き換えるには?
JNLP を使用すると、次の行があります。
この行で StringBufferInputStream を StringReader に置き換える方法は? StringBufferInputStream の API は StringReader を使用するほうがよいと言っていますが、異なるタイプ間で変換するにはどうすればよいですか?
java - Tagsoup が StringReader ( java ) からの HTML ドキュメントの解析に失敗する
私はこの機能を持っています:
POSTリクエストの後にhttpサーバーから送信されたhtmlドキュメントを含む文字列を取りますが、適切に解析できません.ドキュメント全体から4つのノードしか得られません. 文字列自体は問題ないように見えます。印刷してテキスト ドキュメントにコピーすると、期待どおりのページが表示されます。
上記のメソッドのオーバーロードされたバージョンを使用すると:
その後、すべてが正常に機能します-適切なDOMツリーを取得しますが、サーバーからPOST回答を何らかの方法で取得する必要があります.
文字列をファイルに保存して読み戻すことはできません - それでも同じ結果が得られます。
何が問題なのですか?
java - 私のXML要素の1つであるAndroid SAXParserを使用すると、不思議なことに半分に壊れます
そして、「&」ではありません
SAXParser オブジェクトを使用して、実際の XML を解析します。
これは通常、XMLReader.Parse メソッドに URL を渡すことによって行われます。私の XML は Web サービスへの POST 要求から来ているため、その結果を文字列として保存し、StringReader / InputSource を使用してこの文字列を XMLReader.Parse メソッドにフィードバックしています。
しかし、XMLstring の 2001 文字目で奇妙なことが起こっています。
ドキュメント ハンドラーの 'characters' メソッドは、startElement メソッドと endElement メソッドの間で 2 回呼び出され、文字列 (この場合はプロジェクト タイトル) を効果的に 2 つに分割します。文字メソッドでオブジェクトをインスタンス化しているため、1 つではなく 2 つのオブジェクトを取得しています。
この行では、文字列に約 2000 文字が含まれており、「文字」が 2 回発生し、「Lower」と「Level」の間で中断されます。
StringReader / InputSource の回避策をバイパスして、フラットな XML ファイルを XMLReader.Parse にフィードすると、まったく問題なく動作します。
StringReader や InputSource に関する何かが、どういうわけかこれを台無しにしています。
これは、SAXParser を使用して XML 文字列を取得し、解析する私の方法です。
XML 文字列のこの時点に到達したときに、「文字」が 2 回発火しないようにする方法についてのアイデアをいただければ幸いです。
または、POST 要求を使用して URL を Parse 関数に渡す方法を教えてください。
ありがとうございました。
c# - 複数の TextReaders を一緒にストリングする方法は?
StreamReaders と StringReaders の組み合わせである 3 つの TextReaders があります。概念的には、それらを連結すると 1 つのテキスト ドキュメントになります。
単一の TextReader を受け取るメソッド (自分の制御下にない) を呼び出したい。複数の TextReader から連結 TextReader を作成する組み込みまたは簡単な方法はありますか?
(独自の TextReader サブクラスを作成することもできますが、かなりの作業量のように見えます。その場合は、それらすべてを一時ファイルに書き込んでから、単一の StreamReader で開くだけです。)
私が見逃しているこれに対する簡単な解決策はありますか?
c# - StringBuilderとStringWriter/StringReaderの比較
私は最近それを読み、からの書き込みと読み取りに使用されStringWriter
ます。StringReader
StringBuilder
Objectを使用するStringBuilder
と、それは自給自足のクラスのように見えます。
、、、などをStringBuilder
使用して、を
StringBuilder.Append()
読み書きするあらゆる方法があります。Insert()
Replace()
Remove()
- 単独では実行できない
StringWriter
との可能な使用法は何ですか?StringReader
StringBuilder
- それらの実用的な使い方は何ですか?
Stream
それらが入力として使用されていない(他のライターとリーダーが操作するコンストラクターパラメーターとしてストリームを使用しているため)考えられる理由は何StringBuilder
でしょうか?
.net - XML のデシリアライズ時に指定されたエンコーディングを無視する
ソケットを介して外部インターフェイスから受信した XML を読み込もうとしています。問題は、XML ヘッダーでエンコーディングが正しく指定されていないことです (iso-8859-1 と表示されていますが、utf-16BE です)。エンコーディングが utf-16BE であることが文書化されていますが、どうやら正しいエンコーディングを設定するのを忘れていたようです。
逆シリアル化するときにエンコーディングを無視するには、次のように StringReader を使用します。
上記は実際には問題なく動作しますが、ReadLine を呼び出してヘッダー行をスキップする部分が好きではありません。XML ヘッダーで指定されたエンコーディングをバイパスする脆弱性の低い方法はありますか?
StreamReader を使用したソリューション
StreamReader を使用することで、XML ヘッダーで指定されたエンコーディングをオーバーライドできます。XmlReaderSettings.IgnoreProcessingInstructions を指定してもしなくても、違いはありませんでした。興味深いことに、StreamReader は、Unicode のバイト順マークが見つかった場合、指定されたエンコーディングを無視します。
要点をまとめると:
- XmlReader が TextReader で初期化されている場合、XML ヘッダーのエンコーディングは無視されます。
- StringReader が使用されている場合、Unicode バイト順マークが存在すると、XmlReader は失敗します。
- StreamReader が使用されている場合、Unicode バイト順マークが StreamReader エンコーディングをオーバーライドします。
- XmlReaderSettings.IgnoreProcessingInstructions = true は、TextReader を使用する場合に違いはありません。
結論として、最も堅牢なソリューションは、StreamReader を使用することのようです。これは、存在する場合、バイト オーダー マークを使用するためです。
c# - 文字列リーダーのC#チェック行番号
文字列リーダーが特定の行番号を通過したかどうか、またはテキストを含む行番号を通過したかどうかを確認するにはどうすればよいですか?私はこれを文字列リーダーの行処理コードに入れました:
文字列の内容を行番号の範囲に基づいて変更したいのですが、私のコードでは常に123になります。たとえば、10〜20行目(または123〜456行目)の場合、文字列は次のようになります。 123、20-30(または456から789)は456で、30-40は789である必要があります。これを使用してこれを行うにはどうすればよいStringReader
ですか?
java - StringReader.Read() がバイトを返さないのはなぜですか?
データ構造の割り当て (ハフマン コード) で StringReader を使用していて、文字列の末尾に到達したかどうかをテストしていました。StringReader.read() が返す int 値は -1 ではなく 65535 であることがわかったので、結果をバイトにキャストすると、私が抱えていた無限ループの問題が解決しました。
これは JDK のバグですか、それとも Reader.read() 呼び出しから返された値をバイトにキャストするのが一般的な方法ですか? または、何か不足していますか?
私のコードの要点は次のようなものでした:
xml - 指定された文字列オブジェクトを「読み取っていない」StringReader
多くの XML 文字列を格納している mysql データベースにテーブルがあります。XML 文字列は次のようになります。
次のようなクエリを作成します。
結果はデータセットに保存されます。
次に、データセットを介して XML 文字列を単純な文字列オブジェクトに読み込みます。
これが問題の始まりです。文字列リーダーを使用して XML ファイルからデータセットを読み込む方法を知っています。
したがって、私の通常のコードは次のようになります。
私がデバッグしているとき、リーダー (stringReader) は何もロードしません!、同じプログラミング方法論を持つ他のプロジェクトがあり、完全に機能しましたが、今は機能しません。
文字列リーダーは何も返しません。インスペクションを追加すると (vs 2005)、同じです。var リーダーには何もありません。
私は何かをスキップしていますか?それともただの疲れ...
c# - StringReader形式の文字列
私はこのWordpressチュートリアルに従いました。リストビューを使用しましたが、文字列をフォーマットしようとすると、認識されません\t
(ただし認識され\n
ます)。また、認識しませんString.Format
など。
とにかく、タブなどを使用して文字列をフォーマットできますか?
乾杯
編集
行を使用して文字列を印刷すると、文字列が結合されるため、\tは機能しません。ただし、改行の\nは機能します。スペースを使用せずに文字列をフォーマットできる方法を知っている人はいますか。
結果はこんな感じ
NameStateCountry
LongernameStateCountry
anotherNameAnotherStateAnotherCountry
1つの列に名前を付けて(表のように)並べてほしい場合は、別の列と国、次に3番目の列を記述します。
どんな提案も大歓迎です