怎么样?从Int我可以获得Upper Char值吗?

问题描述 投票:1回答:1

我有一个java问题,我有点困惑。一直在寻找并测试一些东西,但没有任何成功。

我有这个FilterWriter类,必须将我的字符串,char和int更改为它的上限值。

 public class UpperCaseFilterWriter extends FilterWriter {

 public UpperCaseFilterWriter(Writer wrappedWriter) {
    super(wrappedWriter);
 }

 @Override
 public void write(String str, int off, int len) throws IOException {
   while(len-- > 0){
     write(str.charAt(off++));
   }
 }

 @Override
 public void write(char[] cbuf, int off, int len) throws IOException {
   while(len-- > 0){
     write(cbuf[off++]);
   }
 }

 @Override
 public void write(int c) throws IOException {
   //TODO Change int c to upper int c
   out.write(c);
 }
}

现在我的write(String) method和我的write(char[]) method正在调用我的write(int c) method

但现在我需要

  1. 拿我的int c
  2. 将其转换为char
  3. 将char(如果它是一个字母)更改为它的Upper值
  4. 再次将其转换为Int以将其传递给我的方法write(int c)

它采用UTF-8编码,所以我有“é”或“ä”字母。

我已经尝试过以不同的方式进行int - > char - > upper char - > int,但这并不成功。

如果有人可以帮助我或者给我信息在哪里看,那就太好了。也许我需要以其他方式做到这一点,或者有一种方法可以通过一些字节编码/解码来实现...我不知道。

谢谢!!

java type-conversion decorator
1个回答
1
投票

Character.toUpperCase是你需要的:它可以直接转换代码点:

 @Override
 public void write(int c) throws IOException {
   //TODO Change int c to upper int c
   out.write(Character.toUpperCase(c));
 }

它正确处理非ascii字符,例如成功将é转换为É

© www.soinside.com 2019 - 2024. All rights reserved.