`
aliusa
  • 浏览: 84026 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

value-string

阅读更多
我们知道在android的value文件夹下,string.xml文件中我们可以定义字符串,今天我才知道原来还可以定义字符串数组
1.定义字符串
<string name="app_name">Test</string>
  引用:
       R.string.app_name;
      getString(R.string.app_name);

2.定义字符串数组
<string-array name="phone_type">
        <item name="mobile_phone_type">Mobile</item>
        <item name="home_phone_type">Home</item>
        <item name="work_phone_type">Work</item>
        <item name="other_phone_type">Other</item>
        <item name="custom_phone_type">Custom</item>
</string-array>
  引用:
      R.array.phone_type;
      getStringArray(R.array.phone_type);

3.带参数的字符串
JDK1.5中,String类新增了一个很有用的静态方法String.format():
format(Locale l, String format, Object... args) 使用指定的语言环境、格式字符串和参数返回一个格式化字符串。
1.常规类型、字符类型和数值类型的格式说明符的语法如下:

%[argument_index$][flags][width][.precision]conversion

      可选的 argument_index 是一个十进制整数,用于表明参数在参数列表中的位置。第一个参数由 "1$" 引用,第二个参数由 "2$" 引用,依此类推。
      可选的 flags 是修改输出格式的字符集。有效标志的集合取决于转换类型。  

      可选 width 是一个非负十进制整数,表明要向输出中写入的最少字符数。
      可选 precision 是一个非负十进制整数,通常用来限制字符数。特定行为取决于转换类型。
      所需的 conversion 是一个表明应该如何格式化参数的字符。给定参数的有效转换集合取决于参数的数据类型。

2.用来表示日期和时间类型的格式说明符的语法如下:
%[argument_index$][flags][width]conversion

可选的 argument_index 、flags 和 width 的定义同上。
所需的 conversion 是一个由两字符组成的序列。第一个字符是 't' 或 'T'。第二个字符表明所使用的格式。这些字符类似于但不完全等同于那些由 GNU date 和 POSIX strftime(3c) 定义的字符。


3.与参数不对应的格式说明符的语法如下:
%[flags][width]conversion

可选 flags 和 width 的定义同上。
所需的 conversion 是一个表明要在输出中所插内容的字符。

转换
转换可分为以下几类:
1. 常规 - 可应用于任何参数类型
2. 字符 - 可应用于表示 Unicode 字符的基本类型:char、Character、byte、Byte、short 和 Short。当 Character.isValidCodePoint(int) 返回 true 时,可将此转换应用于 int 和 Integer 类型
3. 数值
      1. 整数 - 可应用于 Java 的整数类型:byte、Byte、short、Short、int、Integer、long、Long 和 BigInteger
      2. 浮点 - 可用于 Java 的浮点类型:float、Float、double、Double 和 BigDecimal
4. 日期/时间 - 可应用于 Java 的、能够对日期或时间进行编码的类型:long、Long、Calendar 和 Date。
5. 百分比 - 产生字面值 '%' ('\u0025')
6. 行分隔符 - 产生特定于平台的行分隔符

 
//小数点后面两位   
  System.out.println(String.format("%1$.2f", 5689.0));
 //设置整数的最少字符数,不够的以空格代替
  System.out.println(String.format("%1$3d", 1));
        
  //数组的操作  
 Object[] sendData = new Object[4];   
  sendData[0] = Integer.valueOf(1);   
  sendData[1] = "172.12.1.2";   
  sendData[2] = Integer.valueOf(123);   
  sendData[3] = "testadfaerfa";   
  String sendDataString = String.format("%d,%s,%d,%s",(Object[]) sendData);   
  System.out.println(sendDataString);  
<string name="baoxiang">您今天打了%1$d局,还差%2$d局可获得%3$s!</string>
 
    %1$d表达的意思是整个name=”baoxiang”字符串中,第一个整型
     使用:
String text = String.format(getResources().getString(R.string.baoxiang), 2,18,"银宝箱");  


4.TextView组件改变部分文字的颜色:
TextView textView = (TextView)findViewById(R.id.textview);   
  
//方法一:   
textView.setText(Html.fromHtml("<font color=\"#ff0000\">红色</font>其它颜色"));   
  
//方法二:   
 String text = "获得银宝箱!";   
 SpannableStringBuilder style=new SpannableStringBuilder(text);      
  style.setSpan(new BackgroundColorSpan(Color.RED),2,5,Spannable.SPAN_EXCLUSIVE_INCLUSIVE);     //设置指定位置textview的背景颜色   
  style.setSpan(new ForegroundColorSpan(Color.RED),0,2,Spannable.SPAN_EXCLUSIVE_INCLUSIVE);     //设置指定位置文字的颜色   
  textView.setText(style);  


在项目开发中,经常需要把以上两者结合起来使用。可以避免很多textview的拼接,如下所示:

TextView textView = (TextView)findViewById(R.id.testview);   
  
String text = String.format(getResources().getString(R.string.baoxiang), 2,18,"银宝箱");   
       int index[] = new int[3];   
       index[0] = text.indexOf("2");   
       index[1] = text.indexOf("18");   
       index[2] = text.indexOf("银宝箱");   
  
 SpannableStringBuilder style=new SpannableStringBuilder(text);      
           style.setSpan(new ForegroundColorSpan(Color.RED),index[0],index[0]+1,Spannable.SPAN_EXCLUSIVE_INCLUSIVE);       
           style.setSpan(new ForegroundColorSpan(Color.RED),index[1],index[1]+2,Spannable.SPAN_EXCLUSIVE_INCLUSIVE);       
           style.setSpan(new BackgroundColorSpan(Color.RED),index[2],index[2]+3,Spannable.SPAN_EXCLUSIVE_INCLUSIVE);       
           textView.setText(style);  

//对单个字符串加粗
 SpannableStringBuilder style = null;
        style.setSpan( new StyleSpan(Typeface.BOLD), 0, 4, 0);

5.让中文字加粗
在textview 中设置字体粗体的时候只能把 字母+数字 加粗但是中文字体就不能
就只能在代码中加入下设置才可以把包括中文在内的字体都加粗

textview.getPaint().setFakeBoldText(true);
    
分享到:
评论

相关推荐

    binary-string:验证值是否为二进制字符串

    isBinaryString( 值 ) 验证value是否为二进制string ; 即, 1和0的字符序列。 var value = '1000101' ;var bool = isBinaryString ( value ) ;// returns true例子 var isBinaryString = require ( 'validate.io-...

    前端开源库-value-pipe

    const reverseString = value =&gt; value.split('').reverse().join(''); const parallelPipe = valuePipe([toUpperCase, reverseString]); const output = parallelPipe('hello world'); // 输出 'DLROW OLLEH' `...

    Parsing-value-from-a-String

    在Java中,`String`类提供了丰富的API来处理字符串。例如,`substring()`用于获取字符串的一部分,`indexOf()`和`lastIndexOf()`用于查找子字符串的位置,`split()`用于根据分隔符分割字符串。对于简单的值解析,如...

    python3格式化字符串 f-string的高级用法(推荐)

    f-string,亦称为格式化字符串常量(formatted string literals),是Python3.6新引入的一种字符串格式化方法,该方法源于PEP 498 – Literal String ...While other string literals always have a constant value,

    query-string:解析 URL 中的查询字符串

    请求参数 解析 URL 中的查询字符串 安装 $ component install nk-components/query-string $ npm install nk-components/query-string --save ...var nameValue = qs('name'); // &gt;&gt; 'john' 执照 麻省理工学院

    cpp-enum-class-string-idl

    cpp-enum-class-string-idl python3 -m cpp_enum_class_string_idl MyEnums.yaml MyEnums.yaml interfaces : - MyEnum.yaml - MyOtherEnum.yaml MyEnum.yaml name : MyEnum type : int values : - Value0 -...

    anyvalue-master

    2. **类型检查与转换**:为了确保安全性和正确性,AnyValue通常会包含类型检查和转换的机制,如`isXXX()`方法(如`isInt()`, `isString()`等)以及`asXXX()`方法(如`asInt()`, `asString()`等)。 3. **序列化与反...

    Python格式化字符串f-string概览(小结)

    简介 f-string,亦称为格式化字符串常量(formatted string literals),是Python3.6新引入的一种字符串格式化方法,该方法源于PEP 498 – Literal String...While other string literals always have a constant value

    Java常用类与基础API-String的构造器与常用方法

    - 使用 `String` 构造器或者 `String.valueOf(char[])` 方法。 - 示例代码: ```java char[] chars = {'H', 'e', 'l', 'l', 'o'}; String s = new String(chars); ``` 5. **字符串 --&gt; 字节数组(编码)**: ...

    Laravel开发-eloquent-value-object

    public function __construct(string $street, string $city, string $state, string $postalCode) { $this-&gt;street = $street; $this-&gt;city = $city; $this-&gt;state = $state; $this-&gt;postalCode = $...

    color-string:CSS颜色字符串的解析器和生成器

    colorString . get ( '#FFF' ) // {model: 'rgb', value: [255, 255, 255, 1]} colorString . get ( '#FFFA' ) // {model: 'rgb', value: [255, 255, 255, 0.67]} colorString . get ( '#FFFFFFAA' ) // {model: '...

    asn基础知识

    tag-value-type-tag-value-type-tag-value-type-tag-value-type-tag-value-type-tag-value -fno-keep-union-switch-default-value-type-tag-value-type-tag-value-type-tag-value-type-tag-value-type-tag-value-...

    Android代码-auto-value-moshi

    AutoValue: Moshi Extension An extension for Google's AutoValue that creates a simple Moshi JsonAdapterFactory for each AutoValue annotated object. ... abstract String bar(); @Json(name="Baz") abstrac

    auto-value-moshi:自动值

    AutoValue:Moshi扩展 Google的扩展,可为每个带有AutoValue的带注释的对象创建一个简单的 JsonAdapterFactory。 用法 只需在您的项目中包含auto-value-moshi,然后使用Moshi的@JsonClass批注注释目标自动值类。 ...

    Java常用类与基础API-String的理解与不可变性

    在JDK 8中,`String` 类内部声明了一个私有的最终字段 `value` 来存储字符数组,这个数组包含了字符串的实际内容。 ```java private final char value[]; ``` 该字段被标记为 `final`,意味着一旦初始化后,其指向...

    前端大厂最新面试题-string_api.docx

    let result = stringValue.concat("world"); console.log(result); // "hello world" console.log(stringValue); // "hello" ``` 删 在 JavaScript 中,删除字符串的内容实际上是创建了一个副本,然后进行操作。...

    Java-String类的常用方法总结.pdf

    2. `public String(String value)`: 用给定的字符串值创建一个新的String对象。 3. `public String(char[] value)`: 从字符数组创建字符串。 4. `public String(char[] chars, int startIndex, int numChars)`: 从...

    一文了解python 3 字符串格式化 F-string 用法

    F-string 的全称是“Formatted String Literals”,它允许我们在字符串字面量前添加一个 'f' 前缀,然后在字符串内部直接嵌入表达式。 在 F-string 中,我们可以通过在花括号 `{}` 内写入变量名来插入变量的值。...

    nlcst-to-string:将nlcst树转换为字符串的实用程序

    npm install nlcst-to-string 用 import { toString } from 'nlcst-to-string' console . log ( toString ( { type : 'WordNode' , children : [ { type : 'TextNode' , value : 'AT' } , { type : '...

    完美的xslt数值函数与字符串函数.pdf

    例如,`&lt;xsl:value-of select="string-to-codepoints('Th é r è se')"/&gt;`返回84, 104, 233, 114, 232, 115, 101。 - **fn:codepoint-equal(comp1,comp2)**:比较两个字符的Unicode代码点,如果相等返回true,...

Global site tag (gtag.js) - Google Analytics