- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试获取一个文本文件,其中包含类似汇编的代码,并将其解析为 java 中的数组。文本文件如下所示:
begin
LDA #10 ;load $0A into accumulator
LDX $15 ;load $15m into X
_loop TAX ;transfer A to X
SEC ;set carry flag
end
目前,我的代码已逐行读取文本文件,并将每一行作为单独的字符串存储在数组中。这工作得很好,并且代码按预期保留了字符串中的空格。接下来,我将数组中的每一行传递给下面的代码,然后使用 str.split("") 分割每一行,然后修剪每个新字符串,然后将其放入另一个数组并返回数组。
所以为了清楚起见,这个过程是这样的:
LDA #10 ;将 $0A 加载到累加器
一大行dividedLine[] = ["LDA", "#10", ";load", "etc.."]
行被划分为多个元素唯一的问题是,对于某些单词,str.trim()
完全删除了空格,但对于其他一些单词,空格仍然存在。我认为这可能与我正在使用的选项卡有关,但我不确定。
这是我得到的输出:
beginLDA#10;load$0AintoaccumulatorLDX$15;load$15mintoX_loop TAX;transferAtoXSEC;setcarryflagend
正如您所看到的,“loop”和“TAX”之间以及“SEC”和“;set”之间存在大量不应存在的空格。
这是我正在使用的原始文本文件,因为我对其进行了一些更改以使其更易于在堆栈上阅读:https://gist.github.com/anonymous/c802ca31d5402c702ada237bea47f223
这是我的代码:
public String[] divideLine(String line)
{
String[] lineArray = line.split(" ");
for(String str : lineArray)
{
str = str.trim();
System.out.print(str);
}
return lineArray;
}
如果是制表符导致问题,有没有办法在处理每一行之前将所有制表符转换为空格?
最佳答案
如果您拆分单个空白字符,那么这些片段将在某些位置有制表符,这些位置会解释您看到的空白。
例如,原始文件的第五行是
SEC ;设置进位标志
,或制表符为\t,
\tSEC\t\t;设置进位标志
"SEC ;设置进位标志".split("")
返回数组
[ SEC ;设置、进位、标志]
,
或者使用制表符作为\t,你有
[\tSEC\t\t;设置、进位、标志]
正如其他人提到的,您可以更改代码以在不同的正则表达式上进行拆分,例如 "\\s+"
。
关于java - 为什么 str.trim() 不删除某些单词的所有空格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48674410/
我认为 trim() 不存储 trim 后的值。 我在用户提交他们的字符串之前对结果应用了 trim 并且它起作用了,它通过删除额外的空间来正确显示。但是如果我取回 trim 后的值,它会给我用户输入
我遇到了一些困惑。 我知道 String 对象是不可变的。这意味着如果我从 String 类调用方法,例如 replace(),则 String 的原始内容不会改变。相反,一个新的 String 被返
下面是一个使用 trim 的简单示例。根据问题的标题,它们之间有什么区别吗?正如您在下面看到的,它们具有相同的输出。如果答案是“否”,使用哪个更好? 目前我使用 .trim() 因为这是我第一次看到
我从工作表中的网站复制了一些数据,注意到一些单元格除了预期值外,还包含尾随空格。 由于给我的代码带来麻烦,我想删除这些空格。我发现了一个有这个空间的特定单元格并尝试了: Worksheets(2).R
vba 中的 trim 和 trim$ 有什么区别?今天无意中在vba中使用left和trim函数时,编译器说找不到项目或库 当我用谷歌搜索它时,在一个论坛上我发现用户使用这样的方式 vba.tri
这个问题已经有答案了: Why does Date.parse give incorrect results? (11 个回答) 已关闭 4 年前。 我知道从字符串创建日期通常是一个坏主意,但这仍然引
jQuery trim 和原生 JavaScript trim 之间有什么区别吗? 是否有其他行为、安全、性能? 最佳答案 JavaScript .trim() 是在 ES 5.1 中定义的,不适用于
关闭。此题需要details or clarity 。目前不接受答案。 想要改进这个问题吗?通过 editing this post 添加详细信息并澄清问题. 已关闭 8 年前。 Improve th
PowerShell 有一个非常好的内置帮助系统,我经常使用它,我可以通过 Get-Help * 查看所有帮助选项。并查询 Cmdlet 或可以使用 Get-Help about_* 查找主题然后说G
查看 jQuery 的源代码: // Use native String.trim function wherever possible trim: trim && !trim.call("\uFEF
如何 trim javascript 日期对象。我有一个日期,格式为(yyyy-d-m)。日期值为 2015-03-03,我想 trim 天数中的前 0,而不是月数。 示例:当我输入:2015-03-
喜欢听听您的意见和理由吗? 我听说深层目录不好,但它与下划线字符相比如何? 最佳答案 使用破折号 - Google 将破折号视为分隔词,但将下划线视为词的一部分。参见 http://www.codin
根据随附的示例工作表,TRIM 似乎无法正常工作,还是我误解了它? 无论哪种方式,目前对我来说非常令人沮丧,因为我有一个电子表格,我必须计算单元格中的单词数,并且由于这个问题,我无法建立一个完全有效/
在这个 jQuery 中,我可以绑定(bind)粘贴事件来验证表单字段,但是我在函数中的方法显然是错误的。我根本没有收到警报。 我只想修剪输入的文本并将其作为表单输入文本字段 #adsense_cli
我有: onclick="document.getElementById('field1').value = Math.round((parseFloat(document.getElementByI
我在页面上有一些小数点后 4 位的价格。有些产品的价格精确到小数点后 4 位,有些则只有 2 位。 目前,我们的网站设置为每种产品显示 4 位小数,我必须使用 JavaScript 来降低那些非 2
我有这棵“树”。 它是一个多维对象。每个“节点”最多有两个属性,分别是 data 和 children。 这是一个例子: {Account: { data: ['stuff'], children:
好吧,伙计们,要么是有一些小问题我没有发现,要么是该 sleep 了。不管是什么,我都非常感谢您的建议。 我正在用 PHP 生成一个 XML 文件。一切都很顺利,直到我输入这一行: $out .= "
我有一个从 AJAX 返回的变量 row['case'] ,它等于“Hello World!”。问题是,当我尝试将其分配给另一个变量时,只有“Hello”被分配,row['case'] =“Hello
我想知道是否可以将整数转换为字符串并在一步内对其进行 trim 。 我有以下对象: 当前表单 { id:1, name:"Abusicus", value:12203, period:"Morning
我是一名优秀的程序员,十分优秀!